背景:
做VR游戏涉及出发场景切换的问题,本来以为CharacterController已经有Collider了,所以就用一般的onCollision函数去做碰撞检测,结果发现无效。
原因:增加了一个一般的胶囊Collider,结果碰撞就有效了,说明CharacterController肉眼可见的Collider在具体脚本实现上和一般Collider不同。
解决办法:换个函数,用OnControllerColliderHit
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class nextScene : MonoBehaviour
{
public string SceneName;
// Start is called before the first frame update
private void OnControllerColliderHit(ControllerColliderHit hit)
{
Debug.Log(hit.gameObject.name);
if (hit.gameObject.name == "Exit")
{
SceneManager.LoadScene(SceneName);
}
}
}
Hint
注意不能把目标勾上Trigger,不然PlayerController接触的一直就是Terrian了。