Unity LineRenderer 画运动轨迹
問題描述: 一開始將LineRender組件 附給想要畫軌跡的物體時(shí),并不會(huì)顯示在視圖中。
原因是 需要?jiǎng)討B(tài)產(chǎn)生 畫線的實(shí)例,并把它附給 父object
Youtube畫線學(xué)習(xí)鏈接
LineRenderer 畫運(yùn)動(dòng)軌跡
1、給組件添加 材質(zhì) Materials ,不添加不會(huì)有畫線!!!
2、設(shè)置畫線的起點(diǎn)和端點(diǎn), 一般設(shè)置端點(diǎn) End Cap Vertics 多添加幾個(gè),此處為5個(gè)
如果設(shè)置為1個(gè),會(huì)根據(jù)原始Material的樣子畫線
3、 設(shè)置 color,width 等其他屬性
4、Positions的個(gè)數(shù)即為 頂點(diǎn)數(shù),組件設(shè)置里至少為2個(gè)
5、 sorting layer 和 object 的layer 都需要設(shè)置,不然會(huì)與背景進(jìn)行渲染交互
6、設(shè)置好以后就將該帶有render的object 設(shè)為預(yù)制體prefab
7、在需要畫運(yùn)動(dòng)軌跡的物體上添加腳本:
完整代碼如下
public class Jumpline : MonoBehaviour {public GameObject lineprefab;public GameObject currentline;public GameObject emptyPrefab;public GameObject lineObject;public LineRenderer line;private Vector3[] path;private List<Vector3> pos = new List<Vector3>();private float timer;private void Start(){lineObject = Instantiate(emptyPrefab, transform.position, Quaternion.identity, gameObject.transform);}// Update is called once per frameprivate void FixedUpdate(){if(Time.time %5 == 0 && Time.time>=5){pos.Clear();path = pos.ToArray();Destroy(lineObject);lineObject = Instantiate(emptyPrefab, transform.position, Quaternion.identity, gameObject.transform);}if(timer <=0){currentline = Instantiate(lineprefab, transform.position, Quaternion.identity,lineObject.transform);line = currentline.GetComponent<LineRenderer>();pos.Add(transform.position);path = pos.ToArray();timer = 0.1f;}timer -= Time.deltaTime;if(path.Length!=0){line.positionCount = path.Length;line.SetPositions(path);}} }其中 設(shè)置了 每過5s 消除帶有畫線的 子 object,每過0.1s就畫一個(gè) lineRender.
運(yùn)行時(shí),hierarchy層如下圖:
OK!
總結(jié)
以上是生活随笔為你收集整理的Unity LineRenderer 画运动轨迹的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国学大师林语堂献宝:英文学习八要诀
- 下一篇: 猿创征文 |【算法入门必刷】数据结构-栈