キャラクターがキーとなる複数のオブジェクトに接触すると、テキストが表示され、
そのテキストが徐々に透明度が下がって消えるというスクリプトを作っています。
最初の一回は成功するのですが、二回目以降オブジェクトに触れた際は
テキストが表示されません。
書いた内容としては以下の通りです。
C#
1public class charaWork : MonoBehaviour { 2 public Text Get; 3 float textAlpha; 4 public float disappearSpeed; 5 bool getFlag; 6 7 void Start () 8 { 9 textAlpha = 1.0f; //テキストの透明度、最初は不透明 10 Get.enabled = false; //テキストは最初は非表示 11 getFlag = false; 12 } 13 void Update () 14 { 15 if (getFlag == true) 16 { 17 Get.enabled = true; //テキストを表示 18 Get.color = new Color (1, 1, 1, textAlpha); 19 textAlpha -= disappearSpeed; //透明度を下げていく 20 if (textAlpha <= 0) //透明度が下がりきったら初期状態に戻す 21 { 22 Get.enabled = false; 23 textAlpha = 1.0f; 24 getFlag = false; 25 } 26 } 27 } 28 29 void OnCollisionEnter(Collision col) 30 { 31 if (col.gameObject.tag == "key") //キーオブジェクトに触れたら 32 { 33 getFlag = true; 34 } 35 } 36 37}
こちらを実行すると、一回目の処理以降(if (textAlpha <= 0)の中身)、テキスト非表示にはなりますが、透明度は0(透明)で、二回目の接触の時にはその状態のままでgetFlagがtrueになっていないようです。
解決方法ございましたらお教えいただけると幸いです。
補足
public Textの入れ忘れや、keyタグの設定し忘れはありません。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/10/21 06:44