unityでナビゲーションラインを実装したいと思っています。
画像中央の青いラインみたいなもの、プレイヤーから特定のオブジェクトに対して線を引き、方向を教える。
現在LineRendererを使用して実装しようとしているのですが、一度線を引いたら引きっぱなしで、
プレイヤーの位置を追従したり、目的の方向を向き続けてくれませんなにか解決法がありましたら教えていただきたいです。
現在のコードです。
C#
1using UnityEngine; 2using System.Collections; 3 4public class LineRender : MonoBehaviour 5{ 6 7 private LineRenderer lineRenderer; 8 private float count; 9 private float howlong; 10 11 12 public GameObject fromObject; 13 public GameObject toObject; 14 15 public float lineRenderingSpeed; 16 17 18 private bool isSetting = false; 19 20 21 22 23 public void SetPosition(GameObject from,GameObject to) 24 { 25 fromObject = from; 26 toObject = to; 27 28 lineRenderer = GetComponent<LineRenderer>(); 29 lineRenderer.SetPosition(0, fromObject.transform.position); 30 lineRenderer.SetWidth(.1f, .1f); 31 32 //線の距離は20まで 33 howlong = Vector3.Distance(fromObject.transform.position, toObject.transform.position); 34 35 howlong = Mathf.Clamp(howlong, 0.0f, 20.0f); 36 } 37 38 39 // Update is called once per frame 40 void Update () 41 { 42 43 if (count < howlong) 44 { 45 count += lineRenderingSpeed * Time.deltaTime; ; 46 47 //目的地まで伸ばす 48 float x = Mathf.Lerp(0, howlong, count); 49 50 Vector3 pointA = fromObject.transform.position; 51 Vector3 pointB = toObject.transform.position; 52 53 54 Vector3 pointAlongLine = x * Vector3.Normalize(pointB - pointA) + pointA; 55 56 lineRenderer.SetPosition(1, pointAlongLine); 57 } 58 else 59 { 60 //一度情報をリセットしなおす 61 lineRenderer.SetVertexCount(0); 62 lineRenderer.SetVertexCount(2); 63 lineRenderer.SetPosition (0, fromObject.transform.position); 64 65 howlong = Vector3.Distance(fromObject.transform.position, toObject.transform.position); 66 howlong = Mathf.Clamp(howlong, 0.0f, 20.0f); 67 count = 0; 68 } 69 70 71 } 72 73 74} 75
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。