問題点
オブジェクトに当たった際に上にテキストを表示するようにしたいのですが、表示できません。
https://gametukurikata.com/ui/damagepointuiこのサイトを参考にしたのですかがうまくいきません。
###画像
図のように黒が白にぶつかった際に、数値が表示されるようにしたいのですがうまくいきません
図はエラーメッセージです
###ソースコード
C#
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class TakeDamage : MonoBehaviour 6{ 7 // DamageUIプレハブ 8 [SerializeField] 9 private GameObject damageUI; 10 11 public void Damage(Collider col) 12 { 13 // DamageUIをインスタンス化。登場位置は接触したコライダの中心からカメラの方向に少し寄せた位置 14 var obj = Instantiate<GameObject>(damageUI, col.bounds.center - Camera.main.transform.forward * 0.2f, Quaternion.identity); 15 } 16}
C#
1using System.Collections; 2using UnityEngine; 3using UnityEngine.UI; 4 5public class DamageUI : MonoBehaviour 6{ 7 private Text damageText; 8 // フェードアウトするスピード 9 private float fadeOutSpeed = 1f; 10 // 移動値 11 [SerializeField] 12 private float moveSpeed = 0.4f; 13 14 void Start() 15 { 16 damageText = GetComponentInChildren<Text>(); 17 } 18 19 void LateUpdate() 20 { 21 transform.rotation = Camera.main.transform.rotation; 22 transform.position += Vector3.up * moveSpeed * Time.deltaTime; 23 24 damageText.color = Color.Lerp(damageText.color, new Color(1f, 0f, 0f, 0f), fadeOutSpeed * Time.deltaTime); 25 26 if (damageText.color.a <= 0.1f) 27 { 28 Destroy(gameObject); 29 } 30 } 31}
C#
1using System.Collections; 2using UnityEngine; 3 4namespace DamagePointUI 5{ 6 public class Attack1 : MonoBehaviour 7 { 8 9 void OnTriggerEnter(Collider col) 10 { 11 12 col.transform.root.GetComponent<TakeDamage>().Damage(col); 13 14 } 15 } 16}
開発環境
Unity 2018.3.14f1
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。