首先,我們在場景中添加一個攝像機叫做minimapCamera, 把上面的Audio Listener組件去掉,調整攝像機位置,將其置於角色正上方,如圖
新建一個Texture我們叫做minimapTexture,作為minimapCamera的Target Texture
在UI Root下面新建一個Simple Texture叫做minimap,將剛才的minimapTexture賦值給minimap的Texture屬性,創建兩個按鈕用於放大和縮小視野
給minimap添加一個腳本Minimap,控制小地圖有關功能
1 using UnityEngine; 2 using System.Collections; 3 4 public class Minimap : MonoBehaviour 5 { 6 private Camera minimapCamera; 7 private Transform player; 8 private Vector3 offsetPosition; 9 // Use this for initialization 10 void Start () 11 { 12 minimapCamera = GameObject.FindGameObjectWithTag(Tags.MINIMAP_CAMERA) 13 .GetComponent<Camera>(); 14 player = GameObject.FindGameObjectWithTag(Tags.PLAYER).transform; 15 offsetPosition = minimapCamera.transform.position - player.position; 16 } 17 18 void Update() 19 { 20 minimapCamera.transform.position = offsetPosition + player.position; 21 } 22 public void ZoomInButtonClick() 23 { 24 minimapCamera.fieldOfView += 10; 25 } 26 27 public void ZoomOutButtonClick() 28 { 29 minimapCamera.fieldOfView -= 10; 30 } 31 }
通過改變minimapCamera的fieldOfView的值來控制小地圖視野的縮放,通過設置與角色距離保持不變來實現相機跟隨角色
在小地圖中像某些Npc通常以圖標方式顯示出來,怎么實現這個要求呢?
我們可以在npc模型上方新建一個Quad,並賦予相應的圖標貼圖,然后所有Npc創建一個layer NPC,所有圖標創建一個layer
NpcIcon,在主攝像機上渲染NPC層,在小地圖攝像機上渲染NpcIcon層即可
最終效果