unity : SetActive使用時の注意
unityのscriptで、
GameObject.SetActive(true/ false);
を使用する機会は非常に多いです。
しかし、すでにactiveなobjectをactiveにしたり、activeでないobjectを非activeにしたり、と言う動作をすると、その瞬間、動作が重くなるので注意です。変数を変えるノリで、「毎Frame呼ぶ」などすると、一気にFrameRateが落ちます。
さらに、その瞬間だけでなく、その後、「CPUが重くなる症状」が尾を引く・・・ような気がします(不確実ですが、体感として)。
tips
なので、SetActiveを使う時は、必ず、
if(!GamaObject_temp.activeSelf) GamaObject_temp.SetActive(true);
if(GamaObject_temp.activeSelf) GamaObject_temp.SetActive(false);
のようにするようにしましょう。
もしよろしければ、サポートをお願いします! 頂いたサポートは、Creatorとしての活動費に充てさせて頂きます。