怎么用Unity画出物体运动时的轨迹
发表于:2025-11-06 作者:千家信息网编辑
千家信息网最后更新 2025年11月06日,本篇内容主要讲解"怎么用Unity画出物体运动时的轨迹",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么用Unity画出物体运动时的轨迹"吧!本文实例为大
千家信息网最后更新 2025年11月06日怎么用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安全错误
数据库的锁怎样保障安全
软件开发者选项在哪
原味视频手机服务器未响应
绑定 sql数据库
战疫情网络技术教师线上教学
数据库详细设计模板
文职网络安全工程师
南京做网络安全上市公司
怎么写一个json数据库
童心网络技术有限公司
网络安全考研院校有哪些
网络安全馆直播郑州高新区
达梦数据库 storage
数据库管理属于应用程序吗
某中学校园网络安全系统设计方案
软件开发提高人效
网络安全工程师工资如何
软件开发商业画布
网站服务器托管价格
国有四大行核心数据库
软件开发中心视频
程序员和网络安全
网络安全 孵化器
网络技术服务发票
软件开发 英语怎么说
昌吉新华互联网科技详情
航空母舰软件开发
甘肃荒漠化资源数据库需求分析
抗战歌曲数据库
teklaCAM软件开发
四川银行软件开发在那个位置