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" 转载请保留原文链接及作者。