using UnityEngine;
using System.Collections;
public class CameraController : MonoBehaviour {
public Transform target;
public LayerMask hitLayer;
private Vector3 cameraPosition;
public float normalDistance;
private float targetDistance;
private Vector3 camDirection;
private void CameraMove()
{
camDirection = (transform.position - target.position).normalized;
cameraPosition = target.position;
targetDistance = Vector3.Distance(transform.position, target.position);
RaycastHit hit;
if(Physics .Raycast (cameraPosition ,camDirection ,out hit ,targetDistance +0.2f,hitLayer ))
{
float t = hit.distance = 0.1f;
transform.position = t * camDirection + cameraPosition;
}
else
{
if(targetDistance !=normalDistance )
{
float t = Mathf.Lerp(targetDistance, normalDistance, Time.deltaTime * 15);
transform.position = t * camDirection + cameraPosition;
}
}
}
}
摄像机穿墙时自动缩小距离
最新推荐文章于 2023-12-16 12:15:11 发布