怎么用Unity画出物体运动时的轨迹
发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,本篇内容主要讲解"怎么用Unity画出物体运动时的轨迹",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Unity画出物体运动时的轨迹"吧!本文实例为大
千家信息网最后更新 2025年01月16日怎么用Unity画出物体运动时的轨迹
本篇内容主要讲解"怎么用Unity画出物体运动时的轨迹",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Unity画出物体运动时的轨迹"吧!
本文实例为大家分享了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();//获得该物体上的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 ();//获得该物体上的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(); } // Update is called once per frame void Update () { transform.Translate (new Vector3(0.1f,0.1f,0.1f)); }}
6、运行结果
到此,相信大家对"怎么用Unity画出物体运动时的轨迹"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
物体
运动
轨迹
脚本
内容
目标
之间
宽度
小球
点数
组件
颜色
学习
实用
更深
代码
位置
兴趣
夹角
实例
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库趋势图调用
数据库在计算机发展中的作用
等有关机关网络安全法
医院信息网络安全检查表
mssql数据库密码
客户端连接数据库时sa登陆失败
数据库编程用什么电脑
uu数据库
手机软件开发学多久
听课软件开发
深圳橙大业网络技术公司
关系数据库分布式部署
如何看服务器性能
衡水企业软件开发价格
漫画网络安全周
中国在线网络技术有限公司
梦幻西游怎么定制服务器
小微企业宣讲网络安全
微信小程序和云数据库
无锡工业软件开发公司
游戏没有服务器还能玩吗
禁毒教育展览中心软件开发
vps服务器硬件配置
曼尼芬软件开发工程师
数据库信息分析过程
2021年中小学生网络安全教育
软件开发项目需要折旧吗
软件开发短期实施方案
Chns数据库死亡原因
中国网络安全工程师