Unity实现物体运动时画出轨迹
更新时间:2021年9月13日 00:00 点击:2153
本文实例为大家分享了Unity实现物体运动时画出轨迹的具体代码,供大家参考,具体内容如下
1、新建空物体,上赋LineRenderer
2、新建空物体,把轨迹画出来,设计和脚本。
3、LineMark的脚本是
using System.Collections; using System.Collections.Generic; using UnityEngine; public class LineMark : MonoBehaviour { private GameObject clone; private LineRenderer line; private int i; public GameObject obs; public GameObject run; Vector3 RunStart; Vector3 RunNext; // Use this for initialization void Start () { RunStart = run.transform.position; clone = (GameObject)Instantiate(obs, run.transform.position, run.transform.rotation);//克隆一个带有LineRender的物体 line = clone.GetComponent<LineRenderer>();//获得该物体上的LineRender组件 // //line.SetColors(Color.blue, Color.red);//设置颜色 // //line.SetWidth(0.2f, 0.1f);//设置宽度 i = 0; } // Update is called once per frame void Update () { RunNext = run.transform.position; if (RunStart != RunNext) { i++; line.SetVertexCount(i);//设置顶点数 line.SetPosition(i-1, run.transform.position); } RunStart = RunNext; // if (Input.GetMouseButtonDown(0)) // { // clone = (GameObject)Instantiate(obs, obs.transform.position, transform.rotation);//克隆一个带有LineRender的物体 // line = clone.GetComponent<LineRenderer>();//获得该物体上的LineRender组件 // line.SetColors(Color.blue, Color.red);//设置颜色 // line.SetWidth(0.2f, 0.1f);//设置宽度 // i = 0; // print ("GetMouseButtonDown"); // } // if (Input.GetMouseButton(0)) // { // i++; // line.SetVertexCount(i);//设置顶点数 // line.SetPosition(i - 1, Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, 15)));//设置顶点位置 // print ("GetMouseButton"); // // } } }
4、运动小球和脚本
Run.cs
using UnityEngine; using System.Collections; public class Run : MonoBehaviour { public GameObject target; //要到达的目标 public float speed = 10; //速度 private float distanceToTarget; //两者之间的距离 private bool move = true; void Start() { //计算两者之间的距离 distanceToTarget = Vector3.Distance(this.transform.position, target.transform.position); StartCoroutine(StartShoot()); } IEnumerator StartShoot() { while (move) { Vector3 targetPos = target.transform.position; //让始终它朝着目标 this.transform.LookAt(targetPos); //计算弧线中的夹角 float angle = Mathf.Min(1, Vector3.Distance(this.transform.position, targetPos) / distanceToTarget) * 45; this.transform.rotation = this.transform.rotation * Quaternion.Euler(Mathf.Clamp(-angle, -42, 42), 0, 0); float currentDist = Vector3.Distance(this.transform.position, target.transform.position); if (currentDist < 0.5f) move = true; this.transform.Translate(Vector3.forward * Mathf.Min(speed * Time.deltaTime, currentDist)); yield return null; } } }
5、目标小球和运动设置的脚本
follew.cs
using System.Collections; using System.Collections.Generic; using UnityEngine; public class followme : MonoBehaviour { Rigidbody follew; // Use this for initialization void Start () { follew = GetComponent<Rigidbody> (); } // Update is called once per frame void Update () { transform.Translate (new Vector3(0.1f,0.1f,0.1f)); } }
6、运行结果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持猪先飞。
上一篇: Unity2D实现游戏回旋镖
下一篇: Unity实现汽车前后轮倒车轨迹计算
相关文章
- 这篇文章主要为大家详细介绍了Unity时间戳的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
Unity中 ShaderGraph 实现旋涡传送门效果入门级教程(推荐)
通过Twirl 旋转节点对Gradient Noise 梯度噪声节点进行操作,就可得到一个旋转的旋涡效果。具体实现代码跟随小编一起通过本文学习下吧...2021-07-11- 本文主要介绍了4种延时执行的方法,主要包括Update计时器,Invoke,协程,DoTween,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-07-07
- 这篇文章主要为大家详细介绍了Unity shader实现遮罩效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了unity 判断鼠标是否在哪个UI上的两种实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-10
- 这篇文章主要为大家详细介绍了Unity实现换装系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-04-11
- 这篇文章主要给大家介绍了关于利用unity代码C#封装为dll的相关资料,文中通过图文将实现的方法介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-25
- 这篇文章主要为大家详细介绍了Unity Shader实现径向模糊效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-08-09
- 这篇文章主要介绍了JavaScript缓冲运动实现方法,简单分析了JavaScript缓冲运动的实现原理与相关运算技巧,并给出了两则实例代码予以总结分析,需要的朋友可以参考下...2016-01-12
- 这篇文章主要介绍了unity 实现摄像机绕某点旋转一周,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-12
- 这篇文章主要为大家详细介绍了Unity实现截图功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了Unity中EventTrigger的几种使用操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-10
- 这篇文章主要为大家详细介绍了Unity Shader实现2D水流效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了javascript匀速运动实现方法,结合实例形式分析了JavaScript匀速运动的具体实现步骤与相关注意事项,需要的朋友可以参考下...2016-01-12
- 这篇文章主要介绍了Unity 按钮添加OnClick事件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...2021-04-10
- 这篇文章主要为大家详细介绍了Unity使用EzySlice实现模型多边形顺序切割,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-11-03
- 这篇文章主要为大家详细介绍了Unity Shader实现描边OutLine效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要为大家详细介绍了Unity Shader实现裁切效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25
- 这篇文章主要介绍了JS运动相关知识点,总结分析了JavaScript运动所涉及的相关知识点与注意事项,并附带了一个JavaScript弹性运动的实例供大家参考,需要的朋友可以参考下...2016-01-12
- 这篇文章主要为大家详细介绍了unity实现车方向盘转动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2020-06-25