어떤 오브젝트가 생성될 때마다 메모리가 할당됨
GUI는 느리므로 성능이 문제가 될 때에는 사용 X
Debug.Log("po" + "tato"); 는 오브젝트를 생성함
-> 많은 양의 문자열을 다룰 때는 System.String.Empty 를 사용
Class와 Struct의 차이
Potato potato = new Potato();
MyFood(potato);
오브젝트 풀링을 통해 메모리 할당을 더 간단하게 할 수 있고, 동적 메모리 할당 오버헤드와 가비지 컬렉션을 없앨 수 있게 된다.
오브젝트 풀링이 더 빠른 이유
오브젝트 풀링이 느린 이유
비슷한 방식으로 움직이며 플레이어가 주의 깊게 살펴볼 일이 절대로 없는 오브젝트를 여러 개 표시하기 위해 파티클 시스템을 사용하여 순식간에 대량의 오브젝트를 렌더링하게 된다.
-> 스프라이트 패커 무료 에디터 확장 프로그램을 사용
스프라이트 패커는 오브젝트의 프레임을 텍스처에 렌더링하며, 이를 파티클 시스템에서 애니메이션 스프라이트 시트로 사용할 수 있다.
불필요한 검색 대신 캐시 레퍼런스 사용
void Update()
{
transform.LookAt(GameObject.FindWithTag("Player").transform);
transform.position += transform.forward * speed * Time.deltaTime;
}
private Transform myTransform;
private Transform playerTransform;
void Start()
{
myTransform = transform;
playerTransform = GameObject.FindWithTag("Player").transform;
}
void Update()
{
myTransform.LookAt(playerTransform);
myTransform.position += myTransform.forward * speed * Time.deltaTime;
}
비용이 큰 수학 함수 최소화
Physics.Raycast()처럼 비용이 큰 연산은 지양
콜스택 오버헤드 최소화
끗!