unityで、prefabのサイズと透明度をC#スクリプトによって任意に変化させたものを出現させるプログラムを実装したいのですが、透明度を変更して表示させるプログラムがうまくいきません。
http://d.hatena.ne.jp/toburau/20170731/1501518531
を参考にプログラムを書きました。以下がそのプログラムです。
cntが大きければ大きいほどサイズは大きく、透明度は高くなるようにしています。
出現させるprefab側にChangeSizeを適用し、putBallLによってオブジェクトのサイズと透明度を設定し配置しています。
objL.GetComponent<ChangeSize>().changeAlpha(cnt);の行を追加するとprefabが配置されなくなりました。
何が原因であると考えられますか?
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4using UnityEngine.UI; 5 6public class ChangeSize : MonoBehaviour { 7 8 private float size; 9 private float alpha = 0.27f; 10 private Renderer renderer; 11 private Color color; 12 13 // Use this for initialization 14 void Start () { 15 color = renderer.material.color; 16 } 17 18 // Update is called once per frame 19 void Update () { 20 21 } 22 23 public void changeSize(int cnt, float uTime) 24 { 25 size = cnt * uTime; 26 transform.localScale = new Vector3(size, size, size); 27 } 28 public void changeAlpha(float cnt) 29 { 30 color.a = alpha - cnt * 0.004f; 31 renderer.material.color = color; 32 } 33} 34
C#
1public void putBallL(int cnt, Vector3 pos) 2 { 3 if (cnt == 0) return; 4 if (cnt > 40) cnt = 40; 5 objL.GetComponent<ChangeSize>().changeSize(cnt, updateTime); 6 objL.GetComponent<ChangeSize>().changeAlpha(cnt); 7 Instantiate(objL, pos, Quaternion.identity); 8 }
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/12/08 06:37
2018/12/08 07:21
2018/12/10 01:54
2018/12/10 02:36
2018/12/10 04:07
2018/12/10 04:49
2018/12/10 08:27
2018/12/10 09:07