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

Unity 2019.3.14f中Selection.activeGameObject不存在的报错求助

解决Unity EditorWindow中Selection.activeGameObject的CS0117错误

这个错误CS0117: 'Selection' does not contain a definition for 'activeGameObject'看起来有点反常,毕竟UnityEditor.Selection.activeGameObject是Unity Editor API里的标准成员,在2019.3版本中肯定是支持的。结合你的代码和排查过的操作,我来拆解原因和解决办法:

错误核心原因

最大概率是命名冲突:你的项目里存在一个自定义的类/结构体,名字也叫Selection,导致编译器优先识别你自己写的Selection,而非UnityEditor命名空间下的官方类。你已经试过重启Unity和重载项目,所以排除了编辑器缓存导致的命名空间识别问题,命名冲突是最可能的元凶。

另外,你的代码里还有一个小语法错误:loadCell(map.getCell(tile.coordinates)));这里多了一个右括号,这也会导致编译失败,记得一起修正。

具体解决步骤

1. 排查并解决命名冲突

  • 在Unity的Project窗口搜索框中输入Selection,查看是否有自己编写的脚本/类和官方Selection重名。
  • 如果找到重名类,直接给它改个独特的名字(比如CustomSelection),编译器就能正确识别UnityEditor的Selection了。

2. 用完全限定名强制指定官方Selection

如果暂时不想改名,或者没找到重名类,可以直接在代码里用完全限定名锁定官方Selection,把这行代码:

GameObject obj = Selection.activeGameObject;

修改为:

GameObject obj = UnityEditor.Selection.activeGameObject;

这样就明确告诉编译器要使用UnityEditor命名空间下的Selection类,彻底避免歧义。

3. 确认脚本位置合规

  • 确保CellViewer.cs放在Assets/Editor文件夹下,因为Editor相关API只能在Editor目录的脚本中使用,放在普通目录会导致API无法被识别。
  • 再次确认代码顶部的using UnityEditor;没有被注释,也没有其他代码覆盖这个命名空间。

修正后的完整代码示例

这里帮你修正了语法错误和Selection引用问题:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

public class CellViewer : EditorWindow {
    private Map map;

    [MenuItem ("Window/Cell Viewer")]
    public static void ShowWindow() {
        EditorWindow.GetWindow(typeof(CellViewer));
    }

    void OnGUI () {
        if(Map.isInstanceActive()) {
            // 使用完全限定名避免命名冲突
            GameObject obj = UnityEditor.Selection.activeGameObject;
            Tile tile = obj.GetComponent<Tile>();
            if(tile != null) {
                map = Map.Instance();
                // 修正多余的右括号
                loadCell(map.getCell(tile.coordinates));
            }
        }
    }

    // 假设你有这个loadCell方法的实现
    private void loadCell(Cell targetCell) {
        // 你的逻辑代码
    }
}

内容的提问来源于stack exchange,提问作者Ryan Norman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 23:42:50