1. 简介

在Unity3D中,有多种方式可以改变物体的坐标,实现移动的目的,其本质是每帧修改物体的position。

2. 通过Transform组件移动物体

Transform 组件用于描述物体在空间中的状态,它包括 位置(position), 旋转(rotation)和 缩放(scale)。 其实所有的移动都会导致position的改变,这里所说的通过Transform组件来移动物体,指的是直接操作Transform来控制物体的位置(position)。

2.1 Transform.Translate

该方法可以将物体从当前位置,移动到指定位置,并且可以选择参照的坐标系。 当需要进行坐标系转换时,可以考虑使用该方法以省去转换坐标系的步骤。

public function Translate(translation: Vector3, relativeTo: Space = Space.Self): void;

2.2 Vector3.Lerp, Vector3.Slerp, Vector3.MoveTowards

Vector3 既可以表示三维空间中的一个点,也可以表示一个向量。这三个方法均为插值方法, Lerp为线性插值,Slerp为球形插值, MoveTowards在Lerp的基础上增加了限制最大速度功能。 当需要从指定A点移动到B点时,可以考虑时候这些方法。

2.3 Vector3.SmoothDamp

该方法是可以平滑的从A逐渐移动到B点,并且可以控制速度,最常见的用法是相机跟随目标。

2.4 Transform.position

有时重新赋值position能更快实现我们的目标。

3. 通过Rigidbody组件移动物体

Rigidbody组件用于模拟物体的物理状态,比如物体受重力影响,物体被碰撞后的击飞等等。

注意:关于Rigidbody的调用均应放在FixedUpdate方法中,该方法会在每一次执行物理模拟前被调用。

3.1 Rigidbody.velocity

设置刚体速度可以让物体运动并且忽略静摩擦力,这会让物体快速从静止状态进入运动状态。

3.2 Rigidbody.AddForce

给刚体添加一个方向的力,这种方式适合模拟物体在外力的作用下的运动状态。

3.3 Rigidbody.MovePosition

刚体受到物理约束的情况下,移动到指定点。

4. 通过CharacterController组件移动物体

CharacterController用于控制第一人称或第三人称角色的运动,使用这种方式可以模拟人的一些行为,比如限制角色爬坡的最大斜度,步伐的高度等。

4.1 CharacterController.SimpleMove

用于模拟简单运动,并且自动应用重力,返回值表示角色当前是否着地。

4.2 CharacterController.Move

模拟更复杂的运动,重力需要通过代码实现,返回值表示角色与周围的碰撞信息。

unity人物刚体移动_Unity3D 角色(物体) 移动方法 合集相关推荐

  1. unity人物刚体移动_Unity 刚体移动,自方向移动

    场景 发射点 代码 using System.Collections; using System.Collections.Generic; using UnityEngine; public clas ...

  2. unity 人物走动声音_Unity3D实现人物走动 教程

    using UnityEngine; using System.Collections; using System.Linq; public class move: MonoBehaviour { p ...

  3. unity 人物走动声音_Unity3D实现人物走动

    using UnityEngine; using System.Collections; using System.Linq; public class move: MonoBehaviour { p ...

  4. unity人物刚体移动_教程篇 | Unity人物移动动画

      人物移动动画    HCI 人机交互 PART-1 首先创建一个Unity3D工程,命名为Hero,选择3D,右下角创建项目. PART-2 在Asset Store中下载一些免费的素材,场景和人 ...

  5. Unity Asset Store精品Low Poly风格素材资源合集

    本文介绍Unity Asset Store里优质的Low Poly风格素材,会从人物.环境.动物和通用四个方面的素材分别进行介绍. 一:人物素材 本部分包含幻想类.城市类和Q版人物素材三个子类别. O ...

  6. unity人物旋转移动代码_Unity3D研究院之脚本实现模型的平移与旋转(六)

    123 说: 雨松大大,有个问题想请教一下,我用UNET构建了个小场景,在电脑上可以客户端可以连接到服务器,Windows和Linux都可以,发布到安卓缺连不了,这是问什么呢 说: 求教一下,刚刚接触 ...

  7. [Unity]3D物体透明化方法透明材质球

    Default-Skybox,Shader:Skybox/Procedural 使用透明材质 1.使用自带的天空盒材质 新建3D物体,自带是初始材质 将其替换成如上图所示的Default-Skybox ...

  8. Unity - 人物对象的 LOD 管理

    文章目录 Unity 没有内置的人物角色 LOD 管理 可以自己写脚本按距离来控制 扩展.及其问题 References Unity 没有内置的人物角色 LOD 管理 参考了 Unity 论坛上的某个 ...

  9. Unity 3D 刚体(Rigidbody)|| Unity 3D 刚体实践案例

    Unity 3D 中的 Rigidbody 可以为游戏对象赋予物理特性,使游戏对象在物理系统的控制下接受推力与扭力,从而实现现实世界中的物理学现象. 我们通常把在外力作用下,物体的形状和大小(尺寸)保 ...

  10. Unity中获取一个物体下所有的子物体的方法

    Unity中获取一个物体下所有的子物体的方法 方法1(获取全部子物体,无论子物体SetActive是否为true): using System.Collections; using System.Co ...

最新文章

  1. 2021年大数据ELK(二十三):Kibana简介
  2. JQuery 1.32 DatePicker 增强版
  3. xshell-6以及xftp-6家庭版,学校版免费下载(百度云盘)
  4. 【Android 应用开发】Android 图表绘制 achartengine 示例解析
  5. raptor五个数排序流程图_经典算法系列之:选择排序
  6. 关于js的function.来自百度知道的回答,学习了.
  7. vs2010 学习Silverlight学习笔记(8):使用用户控件
  8. php设置表单为整数,PHP中如何判断FROM表单提交的数字是否为整数?
  9. C++ vector 初始化大小
  10. 关于 Uncaught ReferenceError: mOxie is not defined情况下的问题
  11. Windows Installer (无法访问你试图使用功能所在的网络位置)问题
  12. CVAL,PVAL,SVAL宏定义
  13. Windows2016 IKEv2(用户认证模式)
  14. iconv()和mb_conver_encoding()字符编码转换函数
  15. 非线性优化汇总——Matlab优化工具箱(持续更新中)
  16. HCIE面试真题系列17(郝)
  17. 【继承系列】JS中的组合继承
  18. 块交织器5×5 verilog设计及仿真实现
  19. LWN:5.17 合并窗口第一部分!
  20. MATLAB数字图像处理的应用

热门文章

  1. 8个常用的python办公室自动化技巧
  2. Android做一个WiFi信号测试,Android开发——WiFi信号检测
  3. 苹果手机投屏器 及如何使用设置连接电脑投屏教程
  4. 苹果手机怎么无线投屏?苹果手机无线投屏到电脑
  5. 数据结构之图的基本介绍
  6. SVN和git的优缺点比较
  7. 微信小程序开发之十 —— 点击事件
  8. dns服务器功能作用,DNS服务的用途介绍
  9. QtDesigner中的styleSheet
  10. php裂变函数,python实现红包裂变算法