unity3d 摄像机跟随角色时被物体遮挡解决方案
未被遮挡时
为了解决这个问题,在这里我们需要用到 Physics.RaycastAll;使用方法详见圣典
首先 ,我们引入命名空间 System.Collections.Generic,然后在声明三个需要用到的变量
using System.Collections.Generic;//引入命名空间
public class MyCamera1 : MonoBehaviour
{
//观察目标
public Transform Target;
//上次碰撞到的物体
private List<GameObject> lastColliderObject;
//本次碰撞到的物体
private List<GameObject> colliderObject;
}
我们需要发射一条射线,这条射线从角色当前位置发射置摄像机的方向
/*射线可以从头部起始*/
//这里是计算射线的方向,从主角发射方向是射线机方向
Vector3 aim = Target.position;
//得到方向
Vector3 ve = (Target.position - transform.position).normalized;
float an = transform.eulerAngles.y;
aim -= an * ve;
//在场景视图中可以看到这条射线
//Debug.DrawLine(target.position, aim, Color.red);
RaycastHit[