美文网首页
关于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