void Update(){
if (Input.GetMouseButtonDown(0))
{
hit = Physics2D.Raycast(cam.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
if (hit.collider != null)
{
SuperScript sc = hit.collider.gameObject.GetComponent<SuperScript>();
sc.playObject();
}
}
}
Böyle bir kodda diyelim, 1000 tane farklı nesnenin yad aynı nesnenin scriptine eriştik. Performans etkisi ne olur?
Aynı şekilde diyelim Objeleri ve Scripteleri havuzladık ve aşağıdaki kodu çalıştırdık. Performansa etkisi ne olur?
C#:
void Update(){
if (Input.GetMouseButtonDown(0))
{
hit = Physics2D.Raycast(cam.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
if (hit.collider != null)
{
for(int i = 0; i<objectPool.Count; i++)
{
if(objectPoll[i] == hit.collider.gameObject)
{
SuperScript sc = scriptPool[i];
sc.play();
break;
}
}
}
}
}
Sizin performans için bir öneriniz var mıdır?
Arkadaşlar beni kandırmadıysalar eğer, mesela SuperScript içine onMouseDown adlı fonksiyonu eklersek, çoklu nesnelerde bozuluyormuş dediler. Performansı düşürüyormuş. Ondan onMouseDown hazır metodunu eklemedim. Dışarıdan bir Input Manager ile RayCast ekledim.