攝像機(jī)跟隨人物
private Transform Player;
//偏移值
private Vector3 offsetPosition;
void Start () {
//根據(jù)Tag值取得游戲?qū)ο蟮膖ransform
Player = GameObject.FindGameObjectWithTag("Player").transform;
//攝像機(jī)朝向游戲?qū)ο?
transform.LookAt(Player.transform);
//偏移量
offsetPosition = transform.position - Player.position;
}
void Update () {
//攝像機(jī)跟隨
transform.position = offsetPosition + Player.position;
}

1點31分32秒.gif
攝像機(jī)視野拉近拉遠(yuǎn)
//距離
public float distance = 0;
public float scrollSpeed = 10;
/// <summary>
/// 處理視野拉近拉遠(yuǎn)效果
/// </summary>
private void scroliView() {
// Input.GetAxis("Mouse ScrollWheel")//滾輪向前滑動返回正值,向后滑動返回負(fù)值
distance = offsetPosition.magnitude;//得到攝像機(jī)與Player的距離
distance -= Input.GetAxis("Mouse ScrollWheel")*scrollSpeed;// 距離拉近放大,那distance就會減少,所以-=一個正值那滾輪向前就會放大
distance = Mathf.Clamp(distance,2,18);//距離限制,距離在2到18之間
offsetPosition = offsetPosition.normalized * distance;//offsetPosition.normalized返回的長度為1,相當(dāng)于吧偏移量的長度設(shè)為distance
}

33分52秒.gif
控制視野環(huán)繞效果
private bool isRotating = false;
// 旋轉(zhuǎn)的速度
public float rotateSpeed = 2f;
/// <summary>
/// 處理視野的旋轉(zhuǎn)
/// </summary>
void RotateView() {
//Input.GetAxis("Mouse X");//得到鼠標(biāo)在水平方向的滑動
//Input.GetAxis("Mouse X");//得到鼠標(biāo)在垂直方向的滑動
if (Input.GetMouseButtonDown(1))
{
isRotating = true;
}
else if (Input.GetMouseButtonUp(1)) {
isRotating = false;
}
if (isRotating) {
transform.RotateAround(Player.position, Player.up, rotateSpeed * Input.GetAxis("Mouse X"));//圍繞游戲?qū)ο蟮腦軸進(jìn)行旋轉(zhuǎn)
Vector3 originaPos = transform.position;
Quaternion originalRotation = transform.rotation;
transform.RotateAround(Player.position, transform.right, -rotateSpeed * Input.GetAxis("Mouse Y"));//圍繞攝像機(jī)的Y軸進(jìn)行旋轉(zhuǎn)
float x = transform.eulerAngles.x;//eulerAngles為Rotationg
//限制范圍,X旋轉(zhuǎn)到10到80之間
if (x < 10||x>80) {
transform.position = originaPos;
transform.rotation = originalRotation;
}
}
offsetPosition = transform.position - Player.position;
}

21日12點27分50秒.gif
小地圖
小地圖如何制作呢,首先我們創(chuàng)建一個小地圖的攝像機(jī)讓人物對象成為其父對象、

Paste_Image.png
隨后我們創(chuàng)建一個Render Texture并命名為Minimap,再將Minimap拖入我們小地圖攝像機(jī)的Target Texture上這樣我們的Minimap就取得了攝像機(jī)上的圖像了.

Paste_Image.png

Paste_Image.png

Paste_Image.png
然后創(chuàng)建一個Image將Minimap材質(zhì)進(jìn)去就OK了。

Paste_Image.png

Paste_Image.png
private Camera minimapCamera;
void Start() {
minimapCamera = GameObject.FindGameObjectWithTag(Tags.minimap).GetComponent<Camera>();
}
public void OnZoomInClick() {
//放大
minimapCamera.orthographicSize--;
}
public void OnZoomOutClick() {
//縮小
minimapCamera.orthographicSize++;
}

點27分11秒.gif