当前位置: 首页 > news >正文

⭐基于unity物体移动的方法API的总结-GIF图文详解⭐


在这里插入图片描述


👨‍💻个人主页:@元宇宙-秩沅

hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅!

本文由 秩沅 原创

收录于专栏 unity常用API


⭐相关文章: 线性差值函数以及平滑阻尼的运用和实践(Lerp AND SmoothDamp)

⭐相关文章:基础不牢,地动山摇系列 ------ 软硬通吃 unity常用API

⭐相关文章:关于游戏剧情模式中用到的基础简单API

⭐相关文章:控制游戏人物移动的细节到底有多少?

⭐相关文章:坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)


文章目录

  • ⭐基于unity控制物体移动的方法API-GIF图文详解⭐
    • 👨‍💻1.MoveTowards匀速步频实现两点间的移动
    • 👨‍💻2.Lerp()差值实现镜头跟随移动
    • 👨‍💻3,实时更新位置的差值进行镜头的同步移动
    • 👨‍💻4.监听键盘进行实时位置更新
      • 妙用:监控键盘的移动---悬浮移动,上下有摆动
    • 👨‍💻5.刚体力进行牵引移动
    • 👨‍💻6.刚体力的瞬移


⭐基于unity控制物体移动的方法API-GIF图文详解⭐


👨‍💻1.MoveTowards匀速步频实现两点间的移动


在这里插入图片描述

这里的重点是匀速,实现两点间的移动

void FixedUpdate()
    {
        gameObject.transform .position =Vector3.MoveTowards(car.transform.position ,storn.transform.position,0.5f);
    }

👨‍💻2.Lerp()差值实现镜头跟随移动


  • 利用线性差值进行镜头的慢迁移

请添加图片描述

 void LateUpdate()
    {
   transform.position = Vector3.Lerp(transform.position, cube.position, Time.deltaTime);
  }

👨‍💻3,实时更新位置的差值进行镜头的同步移动


其实最简单的方法就直接把相机作为组件挂载上去即可

  • 纯碎位置的实时更新:

请添加图片描述

 void LateUpdate()
    {
        offset = cube.position - transform.position;
        transform.position +=offset;
           
    }
  • 使用Translate的实时更新
    这时不适合于镜头的移动,只适合物体的移动,也就是说适合放在FixedUpdate里面,不适合放在LateUpdate里面,原因如下
    请添加图片描述

此时的镜头的抖动效果并不是地形的原因,而是每帧时位置累加的原因
但是放在FixedUpdate里面就不会出现该情况

所以实现镜头的同步跟随纯粹的位置实时即可,或者直接将相机组件作为移动物体的子组件,保持固定位置


👨‍💻4.监听键盘进行实时位置更新


在这里插入图片描述

也就是键盘进行wsad移动

 void FixedUpdate()
    {
        
        a = gameObject.transform.position.x+Input.GetAxis("Horizontal");
        b = gameObject.transform.position.y;
        c = gameObject.transform.position.z + Input.GetAxis("Vertical"); 
        //此时z轴一直是固定值,c作为y轴的参数后,移动距离只能在[-1,1]之间变化
        move = new Vector3(a,b,c);
        gameObject.transform.position = move ;
    }

妙用:监控键盘的移动—悬浮移动,上下有摆动


  void FixedUpdate()
    {
        
        a = transform.position.x+Input.GetAxis("Horizontal");
        c = transform.position.z + Input.GetAxis("Vertical"); 
        //此时z轴一直是固定值,c作为y轴的参数后,移动距离只能在[-1,1]之间变化
        move = new Vector3(a,c,b);
        transform.position = move ;
    }

在这里插入图片描述

重点在于z轴在固定区域进行上下移动,原因为c的参数是固定的因为z轴未作变化,所以y轴一直都是在不变的z轴位置上进行键盘监听,而范围刚好是是[-1,1]


👨‍💻5.刚体力进行牵引移动


前提是牵引力要大于物体的质量

 void Update()
    {
        cc.AddForce(0 ,0 ,10f);
    }

请添加图片描述


👨‍💻6.刚体力的瞬移


将物体瞬间移动到指定位置的坐标,所以前提得获取指定位置得坐标

在这里插入图片描述

 private void FixedUpdate()
    {
     xx.MovePosition(Vector2 (1,0) );
    }

⭐相关文章: 线性差值函数以及平滑阻尼的运用和实践(Lerp AND SmoothDamp)

⭐相关文章:基础不牢,地动山摇系列 ------ 软硬通吃 unity常用API

⭐相关文章:关于游戏剧情模式中用到的基础简单API

⭐相关文章:控制游戏人物移动的细节到底有多少?

⭐相关文章:坦克炮管旋转发射炮弹(向量基础,射线碰撞,物体实例化)


你们的点赞👍 收藏⭐ 留言📝 关注✅是我持续创作,输出优质内容的最大动力!

相关文章:

  • 破解软件库合集资料网址大全/seo优化与品牌官网定制
  • 深圳龙华做网站的公司/公司网站建设步骤
  • 网站宣传推广/杭州今天查出多少阳性
  • 怎么做刷赞网站/中国培训网官网
  • 中小互联网企业有哪些/广州seo
  • 开封网站开发/深圳网络推广网站
  • Google Earth Engine基础使用方法(一)
  • 理解CSS
  • 机器学习的相关软件框架下载安装
  • C语言学习——字符函数和字符串函数
  • Python学习笔记-PyQt6对话框
  • 基于深度学习的银行卡号识别项目(完整代码+数据可直接运行)
  • Android | Activity
  • 电脑怎么设置动态壁纸?关于Windows和Mac壁纸的设置方法
  • 狗厂的N+1+2毕业,我觉得还是挺良心的
  • 事务(transaction)
  • linux中使用KubeSphere和集群k8s 部署springboot项目
  • win10录屏文件在哪?如何找到录制后的文件