前提・実現したいこと
Unityで2Dゲームを作っており、雨に触れたら人間の体の色を変化するという機能を追加したいです。ちなみに人間はhumanというオブジェクトの中に頭、胴体、右腕、左腕、右足、左足の6つの子オブジェクトがあります。
発生している問題・エラーメッセージ
子オブジェクトの中の一番下のオブジェクトだけ色が変わってしまいます。(左足が一番下にあるので左足だけ色が変わります。試しに右足を一番下にしたら右足だけ色が変わりました)他の子オブジェクトは色が変わりません。子オブジェクト全てにSpriteRendererは付いています。 spRenderer=...の部分が違うと思うのですがどうして良いかわかりません。
該当のソースコード
C#
1public class humanColor : MonoBehaviour 2{ 3 private SpriteRenderer spRenderer; 4 private float x = 0f; 5 6 // Start is called before the first frame update 7 void Start() 8 { 9 foreach (Transform child in transform) 10 { 11 spRenderer = child.gameObject.GetComponent<SpriteRenderer>(); 12 } 13 14 } 15 16 // Update is called once per frame 17 void Update() 18 { 19 20 } 21 22 private void OnCollisionEnter2D(Collision2D col) 23 { 24 if (col.gameObject.tag == "rain") 25 { 26 x += 0.1f; 27 spRenderer.color = new Color(0, 0, x); 28 } 29 } 30}
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/10 06:33
2020/02/10 08:55
2020/02/10 09:11