今天有个朋友问我怎么样自动显示某个对象的Inspector面板? Unity是当鼠标在Hierarchy或者Project视图中选择一个或者多个Object,然后在右侧Inspector面板上就会显示所有属性。那么其实解决这个问题的方法就是使用脚本去选择一个Object就行。
代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
[MenuItem("GameObject/AutoSelect",false,11)] static void Start () { GameObject go = GameObject.Find("Directional Light"); EditorGUIUtility.PingObject(go); Selection.activeGameObject = go; //也可以选择Project下的Object //Selection.activeObject = AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Cube.prefab"); } |
- 本文固定链接: https://www.xuanyusong.com/archives/3790
- 转载请注明: 雨松MOMO 于 雨松MOMO程序研究院 发表
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!
如果想选中多个怎么弄呢?
Selection.gameObjects 是 只读的
这个 Selection.objects
但是这个在Hierarchy中不会选中,我想用代码直接选中多个,并且在Hierarchy也选中
momo你好,是这样的,我要实现一个功能“冻结Hierarchy某个GameObject,不允许拖动跟选择(主要为了不改变层级关系)”。我尝试过改变Selection.activeGameObject,可是仍然可以拖动和改变那个GameObject的层级关系。请问你有没有什么好的方案吗?
你可以试试修改root gameobject的 HideFlags
谢谢啊。HideFlags里面只有隐藏才能阻止GameObject改变层级关系。我最后强制改变Event.current.type = EventType.Ignore;让冻结对象的鼠标事件废掉。
momo大大,我试了一下,发现.xml和.txt文件格式的用这种方法好像找不到文件。Object是可以的。
可以的。。。。
可以了。是我把后面的类型弄错了。