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としての活動費に充てさせて頂きます。