2 UnityEditor常用属性
UnityEditor常用属性
#####即在编写脚本时,在编辑器上面展示出来的属性不够清晰明了,通过使用编辑器属性扩展可以快速理解含义
#####继承自UnityEngine.PropertyAttribute
- 1:使用Range给int、float、long、double限定范围
[Range(1,10)]
public int t1;
[Range(10, 100)]
public float t2;
[Range(20, 50)]
public double t3;
[Range(60, 10000000)]
public long t4;
- 2:字符串显示,Multiline和TextArea基本没什么区别,不过TextArea比Multiline表现要好的多,一般用TextArea足够.
[Multiline(5)]
public string text1;
[TextArea(5,10)]
public string text2;
- 3:ContextMenuItem功能,扩展脚本编辑的一些操作.对属性进行的扩展,多个属性可调用一个方法,一个属性可调用多个方法,方便强大
[ContextMenuItem("op1", "number1")]
[ContextMenuItem("op2", "number2")]
public int number;
void number1()
{
number = Random.Range(0, 100);
}
void number2()
{
number = 0;
}
- 4: color颜色使用ColorUsage进行展示
public Color color1;
[ColorUsage (false)]
public Color color2;
[ColorUsage (true, true)]
public Color color3;
- 5: 使用组概念,使其更美观舒服
[Header("Player Settings--------------------------------------------------------------------------")]
public Player player;
[Serializable]
public class Player
{
public string name;
[Range(1, 100)]
public int hp;
}
[Header("Game Settings--------------------------------------------------------------------------")]
public Color background;
public Color background1;
- 6: Space 设置2个属性之间的纵向空白区域,使看起来更舒服
- 7: Tooltip(“属性解释”),鼠标浮在属性上方即可展示出来
- 8: HideInInspector,隐藏一个public的属性,使其不在Inspector中展示,
- 9: RequireComponent当你添加一个A组件,但是这个组件必须引用另一个B组件,这时在A上面写入RequireComponent(B)
public class Test2 : MonoBehaviour{}
[RequireComponent(typeof(Test2),typeof(Animation))]
public class Test1 : MonoBehaviour{}
- 10: DisallowMultipleComponent 禁止在一个物体上面添加多个相同的类型,再添加的时候会提示你已经添加了一个这样的类型,不能再次添加
- 11: AddComponentMenu 在 Component/Scripts 路径后面接 UI/TColor,即可快速添加脚本
using UnityEngine;
[AddComponentMenu("UI/TColor")]
public class TweenColor : MonoBehaviour{}
12:ExecuteInEditMode属性的作用是在EditMode下也可以执行脚本。Unity中默认情况下,脚本只有在运行的时候才被执行,加上此属性后,不运行程序,也能执行脚本。
与PlayMode不同的是,函数并不会不停的执行。
Update : 只有当场景中的某个物体发生变化时,才调用。
OnGUI : 当GameView接收到一个Event时才调用。
OnRenderObject 和其他的渲染回调函数 : SceneVidw或者GameView重绘时,调用。
Awake与Start调用规则:
Awake:加载时调用。
Start:第一次激活时调用。(刚被挂载上)
这个与运行模式下的调用规则一致。参见《unity—–函数执行顺序》。
需要注意的是,由于在两种模式下都可以运行,所有,切换模式的那一刻,值得我们留 意一下。
不管是从编辑模式进入运行模式,还是从运行模式进入编辑模式,unity都会重新加载资源,所以:
当该MonoBehavior在编辑器中被赋于给GameObject的时候,Awake, Start 将被执行。
当Play按钮被按下游戏开始以后,Awake, Start 将被执行。
当Play按钮停止后,Awake, Start将再次被执行。
当在编辑器中打开包含有该MonoBehavior的场景的时候,Awake, Start将被执行。13:ContextMenu 类似于ContextMenuItem
[Range (0, 10)] public int number; [ContextMenu ("RandomNumber")] void RandomNumber () { number = Random.Range (0, 100); } [ContextMenu ("ResetNumber")] void ResetNumber () { number = 0; }
14:HelpURL()提供一个自定义的文档链接,点击组件上的文档图标既能打开到你指定的链接,一定要写上 http:// 或者 https://
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1487842110@qq.com
Title:2 UnityEditor常用属性
文章字数:870
Author:诸子百家-谁的天下?
Created At:2020-05-11, 11:41:32
Updated At:2021-03-28, 02:59:27
Url:http://yoursite.com/2020/05/11/UnityEditor/2%20UnityEditor%E5%B8%B8%E7%94%A8%E5%B1%9E%E6%80%A7/Copyright: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。