You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity中通过bool控制Get方法返回颜色时出现返回值缺失报错

解决Unity属性Get方法未返回值的报错问题

你的问题根源很清晰:当defaultColors为false时,gridMinorColor的get访问器没有返回任何值——C#要求属性的get方法必须在所有代码路径都返回一个符合类型的值,所以编译器直接抛出了错误。

我们只需要补充defaultColors == false时的返回逻辑,对应你定义的自定义颜色变量,同时保留编辑器皮肤类型的判断逻辑,修改后的代码如下:

private static Color gridMinorColor {
    get {
        if (defaultColors) {
            return EditorGUIUtility.isProSkin ? kGridMinorColorDark : kGridMinorColorLight;
        } else {
            // 匹配皮肤类型返回对应自定义颜色
            return EditorGUIUtility.isProSkin ? CustomkGridMinorColorDark : CustomkGridMinorColorLight;
        }
    }
}

同理,gridMajorColor也需要做完全相同的修改,避免出现同样的报错:

private static Color gridMajorColor {
    get {
        if (defaultColors) {
            return EditorGUIUtility.isProSkin ? kGridMajorColorDark : kGridMajorColorLight;
        } else {
            return EditorGUIUtility.isProSkin ? CustomkGridMajorColorDark : CustomkGridMajorColorLight;
        }
    }
}

额外小提示

  • 记得在使用自定义颜色前,确保CustomkGridMinorColorDark、CustomkGridMinorColorLight等变量已经被赋予了有效的颜色值,不然会默认使用Color的初始值(透明黑色)。
  • 用嵌套三元运算符替代多层if判断,能让代码更简洁直观,可读性也更强。

内容的提问来源于stack exchange,提问作者Daniel Lip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 08:31:15