首页 >Unity3D频道 >【你好Unity3D】 > #你好Unity3D#限制SceneView视图中不可选择游戏对象
2016
01-30

#你好Unity3D#限制SceneView视图中不可选择游戏对象

SceneView 和 Hierarchy视图中鼠标点击都可以选择游戏对象,假如我不想让SceneView视图接收鼠标点击选择事件,只希望在Hierarchy视图选择怎么办呢?我记得是前几天有朋友问过我这个问题,今天你刚好有空我就研究了一下,代码是这样的。

using UnityEngine;
using UnityEditor;
using System.Collections;

public class MyEditor  
{

	[InitializeOnLoadMethod]
	static void Start () 
	{
		SceneView.onSceneGUIDelegate = OnSceneGUI;
	}
	public static bool IsLimitSceneSelectGameObject = true;
	static void OnSceneGUI( SceneView sceneview )
	{
		Event e = Event.current;
	
		int controlID = GUIUtility.GetControlID( FocusType.Passive);
	
		if(IsLimitSceneSelectGameObject && e.type == EventType.Layout)
		{
			HandleUtility.AddDefaultControl(controlID);
		}
	}
}

IsLimitSceneSelectGameObject = true的话就限制在SceneView里选择游戏对象

IsLimitSceneSelectGameObject = false的话就可以在SceneView里选择游戏对象

QQ20160130234102

 

还有一个办法也可以锁定SceneView游戏对象不可选择,如下图所示,你可以在Layers里面添加一个新的层,然后点击一下旁边的小锁头。这样凡是在这个层中的所有游戏对象都不能在SceneView视图中选择到了。

Snip20160205_2

 

 

Unity版本5.3.1

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

#你好Unity3D#限制SceneView视图中不可选择游戏对象》有 2 条评论

  1. 王海文说:

    UGUI RectTransform 这个也能在场景中被点击 ,能忽略掉这个组件吗? 只有继承MaskableGraphic的才能被点击

  2. 于浦说:

    太好了,解决了我的问题。感谢雨凇

留下一个回复

你的email不会被公开。 必填项已用 * 标注。