Unity 飞线效果贝赛尔曲线实现
代码如下:
using System.Collections; using System.Collections.Generic; using UnityEngine; public class FeiXian : MonoBehaviour { public Transform pos0; //位置1 public Transform pos1; // 位置1和位置2中间的位置 public Transform pos2; ////位置2 public float time = 1f; public float startTime = 0; private int jisuqi = 0; //二次贝塞尔曲线 Vector3 Bezier(Vector3 p0, Vector3 p1, Vector3 p2, float t) { //算法第一种写法 //float u = 1 - t; //float tt = t * t; //float uu = u * u; //Vector3 p = uu * p0; //p += 2 * u * t * p1; //p += tt * p2; //return p; //算法第二种写法 Vector3 p0p1 = (1 - t) * p0 + t * p1; Vector3 p1p2 = (1 - t) * p1 + t * p2; Vector3 result = (1 - t) * p0p1 + t * p1p2; return result; } void Start() { //不想要固定位置可以随机位置 //pos1.position = new Vector3(0, Random.Range(5, 11), 0); } void Update() { startTime += Time.deltaTime; if (startTime > time) { startTime = 0f; //坐标转换 实现往返运动 不需要就注释掉 Transform vector = pos0; pos0 = pos2; pos2 = vector; } Vector3 pos = Bezier(pos0.position, pos1.position, pos2.position, startTime / time); transform.position = pos; } }
demo链接:
链接:https://pan.baidu.com/s/1nrpAJEC0j4iqfvkJ3lkDyw
提取码:4pyp
如果喜欢请点个赞吧 ❤❤❤
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器