unity物体运动经过特定点并绘出轨迹

news2024/9/24 13:13:23

经过线如果有圆滑可以参考

Unity物体运动时画出轨迹_天人合一peng的博客-CSDN博客

并修改里面的数值轨迹会有变化

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);

经过特定点时螺钉出现并有动画

 

1 空物体加linerender设置

 2 空物体设置调用linerender绘制线

 linemark.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
 
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组件  
		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;


	}  
}

3 运动小球

 cablelinerun.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;

public class CableLineRun : MonoBehaviour
{

    public Transform cableRun;   //要到达的目标
    public Transform cableStart;   //要到达的目标

    public Transform target01;   //要到达的目标
    public Transform target02;   //要到达的目标
    public Transform target03;   //要到达的目标


    // 固定
    public GameObject GuDing01;
    public GameObject GuDing02;
    public GameObject GuDing03;




    // Start is called before the first frame update
    void Start()
    {



    }

    // Update is called once per frame
    void Update()
    {



        
        if (Input.GetKey(KeyCode.A))
        {
      
            cableRun.DOLocalMove(target01.localPosition, 5f).OnComplete(onCompleteTarget01);

        }

        if (Input.GetKey(KeyCode.B))
        {
      

        }
        
    }


    void onCompleteTarget01()
    {
            GuDing01.SetActive(true);
            // 旋转的同时移动
            var s= DOTween.Sequence();
            s.Append(GuDing01.transform.DOLocalMoveZ(40,3f));
            s.Join(GuDing01.transform.DOLocalRotate(new Vector3(0, 0, 1000),3f));

            cableRun.DOLocalMove(target02.localPosition, 5f).OnComplete(onCompleteTarget02);

    }

        void onCompleteTarget02()
    {
            GuDing02.SetActive(true);
            // 旋转的同时移动
            var s= DOTween.Sequence();
            s.Append(GuDing02.transform.DOLocalMoveZ(-36f,3f));
            s.Join(GuDing02.transform.DOLocalRotate(new Vector3(0, 0, 1000),3f));


            cableRun.DOLocalMove(target03.localPosition, 5f).OnComplete(()=>{

            GuDing03.SetActive(true);
            // 旋转的同时移动
            var s= DOTween.Sequence();
            s.Append(GuDing03.transform.DOLocalMoveZ(-190f,3f));
            s.Join(GuDing03.transform.DOLocalRotate(new Vector3(0, 0, 1000),3f));


            });
    }
}

4 start小球

 5 三个经过点

 6 三个经过点上的螺钉

 7 效果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/430898.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

App灰度发布实现路径之小程序容器

灰度从字面意思理解就是存在于黑与白之间的一个平滑过渡的区域&#xff0c;所以说对于互联网产品来说&#xff0c;上线和未上线就是黑与白之分&#xff0c;而实现未上线功能平稳过渡的一种方式就叫做灰度发布。 灰度发布将新版本应用程序推送给一部分用户进行测试和反馈的过程…

7、ThingsBoard使用docker compose集群部署

1、概述 今天我将讲解官方文档说的使用docker compose集群部署ThingsBoard,这种部署方式也是目前企业中常用的形式,希望大家能够掌握,我不是直接使用官方的镜像,我是自己拉起代码,然后自己构建镜像,在传到服务器上,使用自己的镜像来部署。而且这种部署中间有个大坑,我…

【大数据Hadoop】HDFS3.3.1-Namenode-缓存管理

缓存管理前言缓存概念HDFS 集中式缓存有两个主要概念。缓存管理命令HDFS 集中式缓存架构CacheManager 类实现CacheReplicationMonitor前言 Hadoop 2.3.0 版本新增了集中式缓存管理&#xff08;Centralized Cache Management&#xff09;功能&#xff0c;允许用户将一些文件和目…

数字滤波器设计——FIR 滤波器

数字滤波器设计实践介绍 此示例说明如何使用 Signal Processing Toolbox 产品中的 designfilt 函数&#xff0c;根据频率响应设定设计 FIR 和 IIR 滤波器。该示例重点讲述低通滤波器&#xff0c;但大多数结果也适用于其他响应类型。 此示例主要介绍数字滤波器的设计&#xff…

MATLAB | 如何用MATLAB如何绘制各式各样精致的三元相图(ternary plot)

整了个大活&#xff0c;写了一个能够生成非常精致三元相图的函数&#xff0c;这种图主要用于展示三种变量之间的比例&#xff0c;本期实验绘制效果如下&#xff1a; 编写不易&#xff0c;这个工具写的脑壳痛&#xff0c;求多多点赞&#xff0c;依旧先介绍咋使用&#xff0c;工具…

嵌入式软件架构

总目录链接>> AutoSAR入门和实战系列总目录 总目录链接>> AutoSAR BSW高阶配置系列总目录 文章目录1 嵌入式软件分类 – BAREMETAL2 嵌入式软件分类 – 实时操作系统 (RTOS)3 嵌入式软件分类 – “通用”操作系统4 嵌入式软件分类 – 容器/微服务微服务容器5 嵌…

入行 4 年,跳槽 2 次,我摸透了软件测试这一行

最近几年行业在如火如荼的发展壮大&#xff0c;以及其他传统公司都需要大批量的软件测试人员&#xff0c;但是20年的疫情导致大规模裁员&#xff0c;让人觉得行业寒冬已来&#xff0c;软件测试人员的职业规划值得我们深度思考。 大家都比较看好软件测试行业&#xff0c;只是因为…

python入门(四)python眼里的图像

文章目录背景一.搭建jupyter环境Jupyter 是什么:安装Jupyter Lab1: cmd中找到 anaconda powershell prompt2.切换到python3.8环境中3. 安装Jupyter4. 运行jupyter-lab5. 备注6.命令练习二.图像的本质背景 本人工作中&#xff0c;用到了ai相关技术&#xff0c;但是java出身&…

CNStack 云服务云组件:打造丰富的云原生技术中台生态

作者&#xff1a;刘裕惺 CNStack 相关阅读&#xff1a; CNStack 多集群服务&#xff1a;基于OCM 打造完善的集群管理能力 CNStack 虚拟化服务&#xff1a;实现虚拟机和容器资源的共池管理 CNStack 云边协同平台&#xff1a;实现原生边缘竟能如此简单 01 前言 CNStack 2.0…

Linux网络IO精华指南

在互联网中提起网络&#xff0c;我们都会避免不了讨论高并发、百万连接。而此处的百万连接的实现&#xff0c;脱离不了网络 IO 的选择&#xff0c;因此本文作为一篇个人学习的笔记&#xff0c;特此进行记录一下整个网络 IO 的发展演变过程。以及目前广泛使用的网络模型。 1.网…

小说情感倾向分析工具

目前有很多中英文小说情感倾向工具&#xff0c;以下是一些常用的工具&#xff1a; 情感分析工具&#xff1a;可以对文本进行情感识别&#xff0c;根据文本中包含的情感信息&#xff0c;将其转化成情感值&#xff0c;通常有积极情感值、消极情感值、中性情感值等&#xff0c;常…

Vue3.0的生命周期

要说清这个生命周期钩子&#xff0c;首先我们要通过一个实例来讲解 就是点击这个按钮来切换Demo组件的显示隐藏&#xff0c;当然它也疯狂的操作Demo的挂载&#xff0c;卸载 红色是卸载流程&#xff0c;蓝色是挂载流程 我们写在外面可以实现&#xff0c;但是v3的思想是组合api因…

树状数组与线段树的应用

一、树状数组 树状数组给人的感觉就像&#xff0c;一直在维护前缀和一样&#xff0c;只是加快了前缀和的速度&#xff0c;再用前缀和结合题目得出一些性质&#xff0c;从而去解题。&#xff08;一些不成熟的看法&#xff09; 基础知识&#xff08;一般树状数组用来处理单点修…

含氢微网优化调度模型matlab

目录 1 主要内容 模型示意图 目标函数 2 部分程序 3 程序结果 4 下载链接 1 主要内容 最近咨询含氢微网优化调度模型的同学较多&#xff0c;本次就分享一个高质量的源码资源。该程序方法复现《Simulation of design and operation of hydrogen energy utilization syste…

ssm拦截器

ssm拦截器 #&#xff1a; 与之前的过滤器不一样&#xff0c;过滤器是指在servlet中的&#xff0c;而拦截器是属于SpringMVC的&#xff0c;可以对请求的数据进行提前操作和后置操作&#xff1a; 先自己创建一个拦截器Interception类&#xff08;其实人家真名叫Interceptor&…

flutter dart中用ffi调用golang或C的动态链接库

本文介绍从dart中&#xff0c;通过ffi方式调用golang生成的动态链接库。 go/lib.go package mainimport "C"//export GetKey func GetKey() *C.char {theKey : "123-456-789"return C.CString(theKey) }func main() {}cd go go build -buildmodec-shared…

高通QSSI方式导致CI编译失败问题记录

一、问题背景 1、QSSI说明 QSSI 是 Qualcomm Single System Image 的缩写&#xff0c;高通平台从Android Q开始&#xff0c;为了解决Android碎片化问题&#xff0c;把system.img和vendor.img进一步拆分&#xff0c;增加了QSSI编译选项&#xff0c;QSSI就是用来编译system.img的…

数据结构(ArrayList)

文章目录一、线性表二、顺序表2.1 ArrayList&#xff08;1&#xff09;概念&#xff08;2&#xff09;ArrayList 的构造&#xff08;3&#xff09;ArrayList 的方法&#xff08;4&#xff09; ArrayList的遍历&#xff08;5&#xff09;ArrayList的优缺点2.2 链表一、线性表 概…

symmetric funtion and antisymmetric function(对称性函数和反对称性函数)

symmetric funtion and antisymmetric functionantisymmetric functionsymmetric funtion附录今天看资料的时候遇到了一个说法&#xff0c;文中提及&#xff0c;f(x)f\left(x\right)f(x) 是一个 antisymmetric function&#xff0c;看到这个说法有点儿懵&#xff0c;这里特来记…

上海亚商投顾:沪指逼近3400点 CPO概念股再度爆发

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪沪指今日震荡反弹&#xff0c;午后逼近3400点关口&#xff0c;创业板指则小幅调整。CPO概念股再度爆发&#xff0c;…