前提
立ち上げたばかりの2DプロジェクトにSpriteを追加して、それに下記のTestスクリプトを貼りました。
該当のソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Test : MonoBehaviour 6{ 7 private SpriteRenderer spriteRenderer; 8 9 private void Awake() 10 { 11 spriteRenderer = GetComponent<SpriteRenderer>(); 12 } 13 14 private void Update() 15 { 16 if(spriteRenderer.isVisible == false) 17 { 18 Debug.Log(spriteRenderer.isVisible); 19 } 20 } 21} 22
発生している問題・エラーメッセージ
if(spriteRenderer.isVisible == false)内は呼ばれないと見立てたが、下記の画像のように決まって2回だけDebug.Logが呼ばれてしまう。
試したこと
・コード内のSpriterendererをRendererに置き換えてみた。→相変わらず2回だけ呼ばれる。
・実行後2回だけ呼ばれるということで、コードを下記のように変えてみた→呼ばれなかった。
ただ、変数を用意する手間がある。
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class Test : MonoBehaviour 6{ 7 private SpriteRenderer spriteRenderer; 8 private float count = 0; 9 10 private void Awake() 11 { 12 spriteRenderer = GetComponent<SpriteRenderer>(); 13 } 14 15 private void Update() 16 { 17 count += Time.deltaTime; 18 19 if (count > 2f) 20 { 21 if (spriteRenderer.isVisible == false) 22 { 23 Debug.Log(spriteRenderer.isVisible); 24 } 25 } 26 } 27} 28
補足情報(FW/ツールのバージョンなど)
・Unity 2021.3.8f1 Personal <DX11>を使用
・モニターは120FPS
原因に心当たりのある方、回答していただけると助かります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/09/08 21:18