您好,欢迎来到Unity之家!   unity.jb51.net 
  • 首 页
  • 你问我答
  • 当前位置:首页 > 学习培训 > Unity入门 >
    摄像机穿墙时自动缩小距离
    时间:2015-02-26 10:02 来源:Unity之家 作者:unity.jb51.net 浏览:收藏 挑错 推荐 打印



    摄像机穿墙时自动缩小距离


    直接贴出代码:


    class SoldierCamera : MonoBehaviour
    {
    private Transform target;
    private Transform camTransform;
    public LayerMask hitLayer;
    private Vector3 cPos;
    public float normalDistance;
    private float targetDistance;
    private Vector3 camDir;
    void Start ()
    {
    }
    void LateUpdate ()
    {
    CameraMovement();
    }
    void CameraMovement()
    {
    camDir = (camTransform.position - target.position).normalized;
    cPos = target.position;
    targetDistance = Vector3.Distance(camTransform.position,target.position);
    RaycastHit hit;
    if (Physics.Raycast(cPos, camDir, out hit, targetDistance + 0.2f, hitLayer))
    {
    float t = hit.distance - 0.1f;
    camTransform.position = t * camDir + cPos;
    }
    else {
    if (targetDistance != normalDistance) {
    float t = Mathf.Lerp(targetDistance,normalDistance,Time.deltaTime * 15);
    camTransform.position = t * camDir + cPos;
    }
    }
    }
    }






    (责任编辑:脚印)
    免责声明:Unity之家部分内容来源于互联网,如有侵权,请联系我们,本站将立即进行处理。
    标签:Unity之家