Unity入门操作_ 角色控制器_015
2017-08-22 20:12
441 查看
CharacterController
编写第一人称控制器
using UnityEngine;
using System.Collections;
public class Controller : MonoBehaviour {
}
using UnityEngine;
using System.Collections;
[RequireComponent (typeof(CharacterController))]
[RequireComponent (typeof(Rigidbody))]
public class CharactorMove : MonoBehaviour {
}
编写第一人称控制器
using UnityEngine;
using System.Collections;
public class Controller : MonoBehaviour {
CharacterController _characterController; Rigidbody _rigidbody; float _horizontal; float _vertical; Vector3 direction; public float speed = 1; public float jumpPower = 5; // Use this for initialization void Start () { _characterController = this.GetComponent<CharacterController>(); _rigidbody = this.GetComponent<Rigidbody>(); } // Update is called once per frame void Update () { _horizontal = Input.GetAxis("Horizontal"); _vertical = Input.GetAxis("Vertical"); if(_characterController.isGrounded) { direction = new Vector3(_vertical, 0, _horizontal * -1); if (Input.GetKeyDown(KeyCode.Space)) { direction.y = jumpPower; } } direction.y -= 5 * Time.deltaTime; _characterController.Move(direction * Time.deltaTime * speed); }
}
using UnityEngine;
using System.Collections;
[RequireComponent (typeof(CharacterController))]
[RequireComponent (typeof(Rigidbody))]
public class CharactorMove : MonoBehaviour {
//移动的速度 public float speed; //鼠标的水平偏移量 float offsetMouseX; //鼠标在竖直方向上的偏移量 float offsetMouseY; //人称控制器在水平方向上的旋转角度 public float rotateX; private CharacterController m_CharacterController; private float horizontal; private float vertical; private Camera m_mianCamera; // Use this for initialization void Start () { m_CharacterController = GetComponent<CharacterController>(); m_mianCamera = GameObject.FindGameObjectWithTag("MainCamera").GetComponent<Camera>(); } // Update is called once per frame void Update () { horizontal = Input.GetAxis("Horizontal"); vertical = Input.GetAxis("Vertical"); //控制第一人称控制器的移动效方向 Vector3 direction = (transform.forward * vertical + horizontal * transform.right).normalized; m_CharacterController.SimpleMove(direction * speed * Time.deltaTime); //第一人称控制器左右旋转(此时是游戏界面的二维向量坐标) offsetMouseX = Input.GetAxis("Mouse X"); m_CharacterController.transform.Rotate(Vector3.up * offsetMouseX * rotateX * Time.deltaTime); //第一人称控制器抬头低头看(此时是游戏界面的二维向量坐标) offsetMouseY = Input.GetAxis("Mouse Y"); Vector3 cameraRotateAngle = -offsetMouseY * Vector3.right; m_mianCamera.transform.eulerAngles += cameraRotateAngle; }
}
相关文章推荐
- unity 使用角色控制器CharacterController移动对象造成模型动画的抖动
- Unity入门操作_协程_023
- Unity_Lua_VS环境下入门操作
- unity 角色控制器,控制人物移动
- Unity入门操作_刚体 _012
- Unity入门操作_UGUI_Slider_028
- Unity入门操作_UGUI_事件_030
- Unity入门操作_粒子系统_034
- Unity入门操作_2D动画播放_038
- Unity入门操作_碰撞器 _013
- Unity入门操作_Transform组件_003-01
- Unity入门操作_积木_009
- Unity入门操作_动画系统_Mecanim_032
- unity角色控制器修改(鼠标右键按住旋转视角)
- Unity入门操作_生成有序图案_008
- Unity入门操作_固定路线行走_021
- 【Unity 3D】学习笔记三十八:角色控制器
- Unity入门操作_混合树_033
- Unity 角色控制相关操作
- 【Unity 3D】学习笔记三十八:角色控制器