private Transform myTransform;
void Awake() {
myTransform = transform;
}
using System;
using System.Runtime.CompilerServices;
using UnityEngineInternal;
namespace UnityEngine
{
public class Component : Object
{
public extern Transform transform
{
[WrapperlessIcall]
[MethodImpl(MethodImplOptions.InternalCall)]
get;
}
}
}
本人无意中看到此篇文章,于是做了个实验,在本机上运行 this.transform 效率 比 初始化时引用 低2倍左右。
using UnityEngine;
using System.Collections;
public class Test1 : MonoBehaviour {
float myTime;
Transform myT;
public float index=0;
public float first;
public float two;
void Start () {
myT = transform;
}
void Update () {
if(index == 500){
myTime = Time.realtimeSinceStartup;
Transform t = myT;
two = Time.realtimeSinceStartup-myTime;
}
if(index == 700){
myTime = Time.realtimeSinceStartup;
Transform t = this.transform;
first = Time.realtimeSinceStartup-myTime;
print (first/two);
}
index++;
}
}