Unity 游戏对象的移动方法总结
2016-09-24 13:45
971 查看
//1.使用Transform 来控制移动 public void TranformMove() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); transform.Translate(Vector3.forward * v * 10*Time.deltaTime); //Vector3.up 绕着y轴旋转 transform.Rotate(Vector3.up * Time.deltaTime * 20 *h); } //实现平滑旋转 public void Rotation() { Vector3 targetPosition=new Vector3(); Quaternion targetRotation = Quaternion.LookRotation(targetPosition - transform.position); transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.deltaTime * 20); } //2.使用Rigidbody控制移动 public void RigidbodyMove() { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); rig.MovePosition(transform.position + transform.forward * Time.deltaTime * v); rig.MoveRotation(Quaternion.Euler(transform.up * Time.deltaTime * h * 30) * rig.rotation); } **********************************************
再分享一个个人比较喜欢的一种,移动时对象y值发生变化也是可以使用的
if(h==0 && v==0) { }else { //设置转向 rig.rotation = Quaternion.LookRotation(new Vector3(h, 0, v)); //设置速度 rig.velocity = new Vector3(h * moveSpeed, rig.velocity.y, v * moveSpeed); }
//3.使用CharacterController控制移动 public void ChaaracterMove() { CharacterController cc = new CharacterController(); cc.Move(Vector3.forward); } //4.直接使用动画
相关文章推荐
- [Unity-25] Unity中让游戏对象消失或隐藏的几种方法
- [置顶] 游戏开发技术总结(经典之作)第七集 广阔天地-----游戏大地图的形成方法的地图移动
- ROLL A BALL (Unity 3D 入门) 游戏制作指导 - 移动游戏对象
- Unity相机随游戏对象的移动而移动及调整大小
- 总结自定义控件时用到的移动View对象的方法
- Unity_2D游戏对象的移动_075
- C#开发Unity游戏教程之游戏对象的行为逻辑方法
- Unity学习(七):Unity中游戏对象间的访问方法、脚本时间控制
- 【Unity】6.4 Transform--移动、旋转和缩放游戏对象
- Unity获取未激活游戏对象的方法
- C#开发Unity游戏教程之游戏对象的行为逻辑方法
- 我的Unity(3)一点一滴 实现物体移动和旋转的方法总结(1)
- 【Unity 3D游戏开发学习笔记】总结摄像机和光源的使用方法
- Unity2D对象移动的几种方法
- Unity访问游戏对象和其它脚本的方法
- Unity_2D游戏对象的移动
- C#开发Unity游戏教程之游戏对象的行为逻辑方法
- 即时战略游戏中如何协调对象移动(转帖)
- js入门·对象属性方法大总结
- js入门·对象属性方法大总结