您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity编程 >
    判断变量赋值问题。是在脚本中赋值还是在编辑器预先赋值
    时间:2014-12-12 10:49 来源:互联网 作者:网络 浏览:收藏 挑错 推荐 打印

    脚本中凡是声明public的变量,都可以在编辑器中赋值也可以在脚本中运行时赋值。

    如何能判断变量是脚本中赋值还是从编辑器预先赋值.如下图:


    判断变量赋值问题。是在脚本中赋值还是在编辑器预先赋值


    这个问题如果搞清楚Unity脚本的生命周期其实并不难,程序运行时我载入上图的GameObject,此时将执行New Behaviout Script脚本的初始化工作,因为我的脚本上有一个public string text 的属性,所以可以在编辑模式下给它赋值。


    脚本载入后,text编辑模式下的赋值工作是在Awake()方法之前,然而我们在程序运行时去修改text变量,那么必然是 Awake() OnEnabe()两个方法在执行完毕以后的事。所以在Awake()方法中先将text的值保存起来。


    public string text= "";	
    private string awakeText ="";
     
    void Awake()
    {
    	awakeText = text;
    }


    在需要做逻辑判断的地方,执行如下判断即可。 这样就可以知道某个变量是代码里面赋值还是提前在编辑器预制的了。


    if(text != awakeText)		
    {
    	Debug.Log("text为脚本赋值");
    }
    else
    {
    	Debug.Log("text为编辑模式赋值");
    }

    期待您的留言与点评,谢谢。

    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。