hand
_1_7_23
4
返回栏目
1k
0.2k
0.5k
0.1k
0k
0.2k
0k
0.7k
0k
0k
0.4k
0.1k
4k
0.2k
0.1k
2k
0.2k
0.2k
0k
0k
0.5k
0k
0.9k
0.1k
1k
0.9k
2k
1k
2k
0.9k
1k
0k
1k
0k
1k
1k
1k
1k
0k
1k
1k
1k
0k
3k
1k
0k
0.3k
1k
0.3k
0.9k
0k
8k
9k
6k
2k
1k
2k
1k
1k
2k
0.6k
1k
0.6k
1k
0.5k
0.2k
2k
2k
2k
1k
2k
0k
0.8k
0.8k
1k
0k
0k
0k
0k
0k
0k
0k
0k
0.3k
0.4k
0.8k
0.3k
5k
1k
3k
7k
6k
3k
3k
1k
0.2k
2k
3k
2k
0.4k
0.5k
3k
2k
7k
3k
4k
2k
1k
6k
6k
1k
1k
0.9k
0.2k
0.3k
0.9k
1k
0k
0.8k
2k
0k
0.4k
0.1k
1k
0.9k
0.2k
1k
1k
0.5k
0k
0k
0.4k
4k
0.4k
2k
3k
1k
1k
1k
3k
5k
0k
1k
2k
0.5k
0k
1k
0k
1k
0.5k
0.8k
返回Unity - 游戏引擎栏目
作者:
贺及楼
成为作者
更新日期:2024-05-09 19:43:55
作用:控制角色CharacterController
1、SimpleMove(Vector3: vector3&speed)重力
简单移动,可以根据vector3方向移动,物体不需要添加刚体即受重力影响,不需要添加碰撞器即可以产生碰撞,但无法推动其它物体。
2、Move(Vector3: vector3&speed)无重力
移动,根据vector3方向移动,速度比SimpleMove快许多,不受重力影响,但可以在不添加碰撞器的情况下产生碰撞,无法推动其它物体。
using UnityEngine;
using System.Collections;
public class PlayerCC : MonoBehaviour {
public float speed = 3;
private CharacterController charCtl ;
// Use this for initialization
void Start () {
charCtl = GetComponent<CharacterController>() ;
}
// Update is called once per frame
void Update () {
float h = Input.GetAxis("Horizontal");
float v = Input.GetAxis("Vertical");
charCtl.SimpleMove(new Vector3(h, 0, v)* speed) ;
charCtl.Move(new Vector3(h, 0, v)* speed* TimeDeltaTime) ;
}
}
using UnityEngine;
using System.Collections;
public class PlayerCC : MonoBehaviour {
public float speed = 3;//速度
private CharacterController charCtl ;//目标物体
// Use this for initialization
void Start () {
charCtl = GetComponent<CharacterController>() ;//目标物体,获得组件
}
// Update is called once per frame
void Update () {
float h = Input.GetAxis("Horizontal");//变量
float v = Input.GetAxis("Vertical");//变量
charCtl.SimpleMove(new Vector3(h, 0, v)* speed) ;//方法1
charCtl.Move(new Vector3(h, 0, v)* speed* TimeDeltaTime) ;//方法2
}
}
1.物体添加CharacterController组件
2.注意文件命名空间
3.多用SimpleMove方法
Unity - 游戏引擎
整章节共151节
快分享给你的小伙伴吧 ~