1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
| using UnityEngine;
public class GuideLine : MonoBehaviour { private Transform[] dotsList; public GameObject dot; public float dotScale = 2f; public int dotsNumber = 50; private void Start() { InitGuideLine(); } private void InitGuideLine() { dotsList = new Transform[dotsNumber];
dot.transform.localScale = Vector3.one * dotScale;
for (var i = 0; i < dotsNumber; ++i) { dotsList[i] = Instantiate(dot, null).transform; dotsList[i].parent = transform; dotsList[i].localPosition = Vector3.zero; } Hide(); } public void GuideLineUpdata(GameObject obj) { Show();
Vector3 startPoint = transform.position; Vector3 endPoint = obj.transform.position;
Vector3 step = (endPoint - startPoint) / (dotsNumber - 1);
for (int i = 1; i < dotsNumber; i++) { dotsList[i].position = startPoint + step * i; Debug.Log($"Pos {i}: {dotsList[i].position}"); } } public void Hide() { gameObject.SetActive(false); } public void Show() { gameObject.SetActive(true); }
}
|