您好,欢迎来到年旅网。
搜索
您的当前位置:首页unity3D技术之Scene

unity3D技术之Scene

来源:年旅网
 Scene视图是编辑游戏模型的地方,其实它还可以进行编辑。如下图所示,我给Scene视图做了简单的编辑。

Scene视图的拓展是基于对象的,意思就是你必须在Hierarchy视图中选择一个对象才行。Hierarchy视图中选择不同的对象可以有不同的Scene视图。图中我们创建了一个立方体对象,接着给它绑定一个脚本。

Test.cs 是个空空的脚本。 1 using UnityEngine; 2 using System.Collections; 3 4 public class Test : MonoBehaviour 5 { 6 7 } 然后在Project视图中创建一个Editor文件夹,把MyEditor.cs放进去。 1 2 3 4 5 6 7 8 9

using UnityEditor; using UnityEngine;

//自定义Tset脚本

[CustomEditor(typeof(Test))] //请继承Editor

public class MyEditor : Editor {

10 void OnSceneGUI() 11 {

12 //得到test脚本的对象 13 Test test = (Test) target; 14

15 //绘制文本框

16 Handles.Label(test.transform.position + Vector3.up*2,

17 test.transform.name +\" : \"+ test.transform.position.ToString() ); 18

19 //开始绘制GUI 20 Handles.BeginGUI(); 21

22 //规定GUI显示区域

23 GUILayout.BeginArea(new Rect(100, 100, 100, 100)); 24

25 //GUI绘制一个按钮

26 if(GUILayout.Button(\"这是一个按钮!\")) 27 {

28 Debug.Log(\"test\"); 29 }

30 //GUI绘制文本框

31 GUILayout.Label(\"我在编辑Scene视图\"); 32

33 GUILayout.EndArea(); 34

35 Handles.EndGUI(); 36 } 37 38 }

此时,你可以把之前的Test.cs脚本绑定在任意对象身上,然后在Hierarchy视图中点击对象即可在Scene视图中看到编辑的视图啦。

最后我在说一下,在OnSceneGUI()中只能通过Handles来绘制新视图,如果你想引入GUI的元素哪么就需要使用BeginGUI()和EndGUI()组合的使用。 Handles还提供了很多编辑视图的方式,详细信息大家请看

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务