-
- var target : Transform;
- var distance : float = 3.0;
- var height : float = 1.0;
- var damping : float = 5.0;
- var smoothRotation : boolean = true;
- var rotationDamping : float = 10.0;
-
- var targetLookAtOffset : Vector3;
-
- var bumperDistanceCheck : float = 2.5;
- var bumperCameraHeight : float = 1.0;
- var bumperRayOffset : Vector3;
-
- function FixedUpdate() {
-
- var wantedPosition = target.TransformPoint(0, height, -distance);
-
-
- var hit : RaycastHit;
- var back = target.transform.TransformDirection(-1 * Vector3.forward);
-
-
- if (Physics.Raycast(target.TransformPoint(bumperRayOffset), back, hit, bumperDistanceCheck)) {
-
- wantedPosition.x = hit.point.x;
- wantedPosition.z = hit.point.z;
- wantedPosition.y = Mathf.Lerp(hit.point.y + bumperCameraHeight, wantedPosition.y, Time.deltaTime * damping);
- }
-
- transform.position = Vector3.Lerp(transform.position, wantedPosition, Time.deltaTime * damping);
-
- var lookPosition : Vector3 = target.TransformPoint(targetLookAtOffset);
-
- if (smoothRotation) {
- var wantedRotation : Quaternion = Quaternion.LookRotation(lookPosition - transform.position, target.up);
- transform.rotation = Quaternion.Slerp(transform.rotation, wantedRotation, Time.deltaTime * rotationDamping);
- } else {
- transform.rotation = Quaternion.LookRotation(lookPosition - transform.position, target.up);
- }
- }
posted @
2016-11-22 18:47
何人之名
阅读(
709)
评论()
收藏
举报