最近在学习Unity3D制作游戏,不是很喜欢预设的第三人称镜头,就自己写了一个镜头代码。自己是一个新人,代码也有很多不足,请大家多多包涵~
using UnityEngine;
using System.Collections;
public class CameraFlow : MonoBehaviour
{
public Transform target;
Vector3 CameraDis;
void Start()
{
CameraDis = transform.position - target.position;
}
void LateUpdate()
{
Scale();
transform.position = target.position + CameraDis;
transform.LookAt(target);
Rotate();
}
private void Scale()
{
float Scaledis = CameraDis.magnitude;
Scaledis -= Input.GetAxis("Mouse ScrollWheel") * 5;
if ((Scaledis <= 2))
{
Scaledis = 2;
}
else if(Scaledis >= 8)
Scaledis = 8;
CameraDis = CameraDis.normalized * Scaledis;
}
private void Rotate()
{
transform.RotateAround(target.position, Vector3.up, Input.GetAxis("Mouse X") * 10);
float t = Input.GetAxis ("Mouse Y") * -1/5;
CameraDis = transform.position - target.position ;
CameraDis.y += t;
if(CameraDis.y>=2)
{
CameraDis.y = 2;
}
else if (CameraDis.y<=0)
{
CameraDis.y = 0;
}
}
}