我给角色加了character controller,调了碰撞器的大小。然后在脚本里用角色控制器的move方法移动,然后无法与其他碰撞器发生碰撞,也无法检测到character controller
同学你好,可以参考一下:
https://www.cnblogs.com/csdnmc/p/4223480.html
https://www.cnblogs.com/dreamCirno/p/6699408.html
https://blog.csdn.net/qq_30454411/article/details/79139227
那几篇博客我之前也查过了。还是那个问题,角色与其他物体无法发生碰撞,我是用的character controller的move方法控制的移动,鼠标右键控制人物朝向。墙体都加了碰撞器的。图在下面了,老师帮忙看看。
public class Move_01 : MonoBehaviour
{
private float speed;
private Dir_01 m_playerDir;
private CharacterController controller;
public bool isMoving;
void Awake()
{
m_playerDir = transform.GetComponent<Dir_01>();
controller = transform.GetComponent<CharacterController>();
}
void Update()
{
float distance = Vector3.Distance(m_playerDir.targetPos, transform.position);
if (distance > 0.1f)
{
if (Input.GetKey(KeyCode.LeftShift) || Input.GetKey(KeyCode.RightShift))
{
speed = 4;
}
else
{
speed = 2;
}
controller.Move(transform.forward * speed*Time.deltaTime);
isMoving = true;
}
else
{
speed = 0;
//state = PlayerMode.idle;
isMoving = false;
}
}
public float GetSpeed()
{
return this.speed;
}
}
角色控制器是没有办法发生碰撞检测与触发检测的,博文里都有,如果同学想要的效果是,我们人物不去穿墙的话,那么一个最简单的解决方法是,加上刚体与碰撞器(这个是单独的,且不要与角色控制器挂在一个游戏物体上)。