1) 쓸데없는 Monobehavior을 상속받는 함수는 없애자 ex) start, fixedupdate, update 등등 연관이 어떤식으로 되어있냐면
User C# <--> Unity Engine, c++
유저는 스크립트로 C#에서 제어를 하지만 실제로 동작하는 일은 Engine인 C++ 에서 동작을 하기에 최대한 그들의 움직임을 줄여주는 것이 훨씬 향상이 된다는 이야기 였습니다. 이때, Monobehavior을 상속받은 함수들(ex. awake start, update, fixedupdate 등)은 Unity Engine에서 Queue 작업으로 따로따로 관리를 하기 때문에 이들이 많아지면 많아질수록 자원을 사용하게 됩니다.
또한 C#이 C++ 엔진의 컨퍼런스 같은 느낌이여서 object를 가져올때나, translate 할때 등등 유니티 엔진에서 소모되는 자원이 크니, update문에서 실행보단, start에서 한 번만 가져와야 합니다.
2) 하나의 제어 스크립트를 만들자
각 오브젝트마다 스크립트를 두어서 생성할바엔 차라리 하나 움직임을 제어하는 스크립트를 두어서 그 안에서 해결하는게 오버헤드를 줄여줍니다.
3) 또한 비싼 FInd(), GetComponent와 같은 호출을 빈번히 사용하지 않도록 한다 ex) update문에 넣는다던지 필요할때만 start 에 넣고 사용하는게 좋습니다.