Unity3D 之3D游戏角色控制器运动
2016-06-09 21:20
656 查看
3D运动,绑定了人形控制器后的一个简单的运动方法。
复杂的运动,比如尝试着通过动力移动控制器。
可以完成人物贴在地面上运动的效果。
using UnityEngine; using System.Collections; public class PlayerMove : MonoBehaviour { private CharacterController cc; private Animator animator; public float speed = 4; void Awake() { cc = this.GetComponent < CharacterController>(); animator = this.GetComponent<Animator>(); } // Update is called once per frame void Update () { float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); //按键的取值,以虚拟杆中的值为优先 if (Joystick.h != 0 || Joystick.v != 0) { h = Joystick.h; v = Joystick.v; } if (Mathf.Abs(h) > 0.1f || Mathf.Abs(v) > 0.1) { animator.SetBool("Walk", true); if (animator.GetCurrentAnimatorStateInfo(0).IsName("PlayerRun")) { Vector3 targetDir = new Vector3(h, 0, v); transform.LookAt(targetDir + transform.position); cc.SimpleMove(transform.forward * speed); } } else { animator.SetBool("Walk", false); } } }
复杂的运动,比如尝试着通过动力移动控制器。
public float speed = 6.0F; public float jumpSpeed = 8.0F; public float gravity = 20.0F; private Vector3 moveDirection = Vector3.zero; //一个复杂的运动 if (cc.isGrounded) { moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical")); moveDirection = transform.TransformDirection(moveDirection); moveDirection *= speed; if (Input.GetButton("Jump")) moveDirection.y = jumpSpeed; } moveDirection.y -= gravity * Time.deltaTime; cc.Move(moveDirection * Time.deltaTime);
可以完成人物贴在地面上运动的效果。
![](https://images2015.cnblogs.com/blog/637344/201608/637344-20160801233050090-1661771242.gif)
相关文章推荐
- Unity_数学_点乘和叉乘的应用
- Unity资源打包Assetbundle
- Unity协同
- Unity游戏摇杆之Easy Touch 3教程
- unity5 动态创建时,比例保持不变
- Node.js服务器进行 unity聊天
- [Unity3d ]物体自动移动到指定点
- 【Unity技巧】开发技巧(技巧篇)
- Unity 打包 Android 后怎么看见脚本中的 Debug?
- Unity3d在各个平台读取Sqlite3数据库
- Unity知识四:Unity编程过程中遇到的小问题(持续更新)
- Unity Shader 光照模式
- unity点选构建Mesh并保存OBJ
- Unity Shader修改Shader属性
- Unity3D 更新文件下载器
- Unity3D LuaBundleLoader(基于cslua)
- 【Unity】判断物体是否会被渲染
- Unity3d OverlapCircle和CircleCast的区别
- 【Unity】一些不错的unity插件
- 【Unity】加深对Camera的理解