HideFlag隐藏标识

前言

如何让一个Gameobject的属性在运行时,不可以在属性面板上手动的修改呢?

文档:http://www.ceeger.com/Script/Enumerations/HideFlags/HideFlags.html

测试环境:Unity 5.3.6f1 (windows x64)

经测试HideFlag对gameobject和自定义都有效,因为此属性是UnityEngine.Object的,而MonoBehaviour的上层也是继承于此,所以只要你的脚本直接或间接地继承MonoBehaviour都是可行的。

关系图:UnityEngine.Object->Component->Behaviour->MonoBehaviour

Gameobject不可编辑

测试代码

public class HideFlagTest : MonoBehaviour
{
    // Use this for initialization
    void Start()
    {
        //整个gameobject的属性面板不可编辑
        gameObject.hideFlags = HideFlags.NotEditable;
    }
}

测试效果

gameobject的整个属性面板都不可编辑

image

 

脚本或自带组件不可编辑

测试代码

public class HideFlagTest : MonoBehaviour
{
    public int speed = 10;
    public string desc = "test";
    public GameObject target;

    // Use this for initialization
    void Start()
    {
        gameObject.GetComponent<Camera>().hideFlags =  HideFlags.NotEditable;
        //仅仅是某个脚本的属性面板不可编辑
        gameObject.GetComponent<HideFlagTest>().hideFlags = HideFlags.NotEditable;
    }
}

测试效果

Camera组件和自定义的脚本不可编辑

image

posted @ 2016-11-25 10:05  赵青青  阅读(2227)  评论(0编辑  收藏  举报