問題
http://satoukibi.hatenablog.com/entry/2017/02/25/Unity_%E3%81%A7%E3%83%80%E3%83%A1%E3%83%BC%E3%82%B8UI%E3%82%92%E4%BD%9C%E3%82%8B%282D%29
こちらのサイトに書かれている
「文字(TextMesh)を出すオブジェクト」を作ろうとして、
他のオブジェクトの上にインスタンスで文字を出そうとしたら
文字が重なって見えない状態になりました。
期待する結果
他のオブジェクトの上に文字が表示されるようになる
(文字が隠れないようにする)
コード
文字オブジェクト側
csharp
1using System.Collections; 2using System.Collections.Generic; 3using UnityEngine; 4 5public class DamageTextScr : MonoBehaviour 6{ 7 8 // Use this for initialization 9 void Start() 10 { 11 GetComponent<Rigidbody2D>().AddForce(new Vector3(Random.Range(-80, 80), Random.Range(100, 180), 0)); 12 StartCoroutine(DestroyObject()); 13 } 14 15 private IEnumerator DestroyObject() 16 { 17 yield return new WaitForSeconds(0.6f); 18 Destroy(this.gameObject); 19 } 20}
オブジェクト生成側(一部)
csharp
1 public void Damage() 2 { 3 int i = Mathf.RoundToInt(5 * Random.Range(0.8f, 1.2f)); 4 hpValue -= i; 5 Instantiate(damageText, transform.position, transform.rotation).GetComponent<TextMesh>().text = "" + i; 6 if (hpValue <= 0) 7 { 8 hpGauge.gameObject.SetActive(false); 9 hpBG.gameObject.SetActive(false); 10 } 11 }
試したこと
・Canvasを追加してレイヤー変更
・一度オブジェクトとスクリプトを削除して作り直す
2019/3/25 11:01追記
・TransformのZ軸を変える
・TextMesh側のoffsetZ値を変える
・TextMesh側にSorting Layerを追加→SpriteRendererが付けれないため不可
同日 12:30追記
・Canvasコンポーネントを追加してSortingLayerを変更
・SortingLayerを変更した状態でCanvasのレイヤー変更
使用ソフト
Unity2018.3.9f1 Personal
VisualStudio 2019 RC
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。