private GameObject mGo;
void Start()
{
this.mGo = this.gameObject;
}
void OnGUI()
{
if (GUILayout.Button("T1"))
{
float time = Time.realtimeSinceStartup;
int s = 0;
for (int i = 0; i < 100000; i++)
{
s = this.gameObject.layer;
}
Debug.Log("T1:" + (Time.realtimeSinceStartup - time));
}
if (GUILayout.Button("T2"))
{
float time = Time.realtimeSinceStartup;
int s = 0;
for (int i = 0; i < 100000; i++)
{
s = this.mGo.layer;
}
Debug.Log("T2:" + (Time.realtimeSinceStartup - time));
}
}
간단한 데모입니다. 다른 소스 코드를 읽은 다음 찾으십시오. T1과 T2가 다른 이유를 알고 싶습니다. 누군가 나에게 이유를 말할 수 있습니다.왜 GameObject 캐시가 더 빠릅니까?
나쁜 벤치 마크입니다. 신뢰할 수 없습니다. 어쨌든, 부작용이있을 수 있습니다. –
참고로, 게임에서의 개발을 위해'OnGUI'를 사용해서는 안됩니다. 이 함수는 편집기 용 컨트롤을 디자인 할 때만 사용해야합니다. –