using UnityEngine;
using System.Collections;
public class CameraFollows : MonoBehaviour {
private Vector3 position;
public Transform target;
public float distance ;
public float targetHeight;
public float PitchAngle;
private float x = 0.0f;
private float y = 0.0f;
private float cameraShakeImpulse;
void Start () {
var angles = transform.eulerAngles;
x = angles.x;
y = angles.y;
cameraShakeImpulse= 1;
}
void LateUpdate ()
{
if(!target)
return;
y = target.eulerAngles.y;
Quaternion rotation = Quaternion.Euler(x-PitchAngle, y, 0);
transform.rotation = rotation;
Vector3 position = target.position - (rotation * Vector3.forward * distance + new Vector3(0,-targetHeight,0));
transform.position = position ;
ShakeCamera ();
print (transform .position);
}
//摄像机震动
void ShakeCamera ()
{
transform.position += new Vector3 (0, Random.Range (-cameraShakeImpulse, cameraShakeImpulse), Random.Range (-cameraShakeImpulse, cameraShakeImpulse));
cameraShakeImpulse -= Time.deltaTime * cameraShakeImpulse * 4f;
if (cameraShakeImpulse < 0.01f)
{
cameraShakeImpulse = 0;
}
}
using System.Collections;
public class CameraFollows : MonoBehaviour {
private Vector3 position;
public Transform target;
public float distance ;
public float targetHeight;
public float PitchAngle;
private float x = 0.0f;
private float y = 0.0f;
private float cameraShakeImpulse;
void Start () {
var angles = transform.eulerAngles;
x = angles.x;
y = angles.y;
cameraShakeImpulse= 1;
}
void LateUpdate ()
{
if(!target)
return;
y = target.eulerAngles.y;
Quaternion rotation = Quaternion.Euler(x-PitchAngle, y, 0);
transform.rotation = rotation;
Vector3 position = target.position - (rotation * Vector3.forward * distance + new Vector3(0,-targetHeight,0));
transform.position = position ;
ShakeCamera ();
print (transform .position);
}
//摄像机震动
void ShakeCamera ()
{
transform.position += new Vector3 (0, Random.Range (-cameraShakeImpulse, cameraShakeImpulse), Random.Range (-cameraShakeImpulse, cameraShakeImpulse));
cameraShakeImpulse -= Time.deltaTime * cameraShakeImpulse * 4f;
if (cameraShakeImpulse < 0.01f)
{
cameraShakeImpulse = 0;
}
}