怎么用Unity画出物体运动时的轨迹
发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇内容主要讲解"怎么用Unity画出物体运动时的轨迹",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Unity画出物体运动时的轨迹"吧!本文实例为大
千家信息网最后更新 2025年02月23日怎么用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安全错误
数据库的锁怎样保障安全
计算机网络技术专用语言怎么发音
opc 实时数据库
exac数据库功能
南通企业软件开发
绝地怎么选择服务器
电脑上的数据库文件在哪里
4423电梯服务器怎么查故障
es表导出数据库
萌宠部落哪个服务器最好
游戏服务器开光
软件开发成品网
学软件开发需要多长时间
网络安全工程师的相关证书
香港云服务器架设传奇
网络安全说明400字
国际货币基金组织数据库
ai计算服务器配置
剑网三最新服务器是哪个
数据库的备份文件怎么查看
最新ssr服务器分享2018
青岛百度软件开发
关注网络安全手抄报 三年级
卧虎藏龙服务器多少钱
军用软件开发过程规范
数据库管理系统称为什么语言
国家信息数据库管理工具
杭州征途网络技术有限公司
浙江信息安全培训网络安全培训
漠河市网络安全检查
小米服务器隐私数据