美文网首页
关于Unity的transform使用

关于Unity的transform使用

作者: 暮卿寒 | 来源:发表于2018-07-17 16:37 被阅读0次

    【一】

    大家来看看如下代码:

    private Transform myTransform;
    void Awake() {
        myTransform = transform;
    }
    

    看起来稀松平常,波澜不惊,但是下面水还是蛮深的。
    使用myTransform替代this.transform。如果你不知道u3d内部实现获取方式你肯定会以为这人脑抽水了,有直接的不用,还自己保存起来。
    this.transform并不是变量,而是一个get/set属(property)
    他是一个C++写的代码,在Mono中被调用。调用是intenal method的调用,其效率本身不是高。
    比如,transform 经常需要保存在本地,然后在使用。

    namespace UnityEngine
    {
        public class Component : Object
        {
            public extern Transform transform
            {
                [WrapperlessIcall]
                [MethodImpl(MethodImplOptions.InternalCall)]
                get;
            }
        }
    }
    

    值得注意的是这个调用方法略慢,因为你需要调用外部的CIL(aka interop),花费了额外的性能。

    相关文章

      网友评论

          本文标题:关于Unity的transform使用

          本文链接:https://www.haomeiwen.com/subject/zmdfpftx.html