- 最后登录
- 2022-10-8
- 注册时间
- 2010-12-6
- 阅读权限
- 100
- 积分
- 14150
  
- 纳金币
- 76544
- 精华
- 23
|
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;
}
}
}
}
请大家支持一下,或许哪天就用上了。(更多3D资讯尽在web3D纳金网http://www.narkii.com/) |
|