zoukankan      html  css  js  c++  java
  • unity简易小地图的实现(NGUI)

    首先,我们在场景中添加一个摄像机叫做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层即可

    最终效果

  • 相关阅读:
    LeetCode "Jump Game"
    LeetCode "Pow(x,n)"
    LeetCode "Reverse Linked List II"
    LeetCode "Unique Binary Search Trees II"
    LeetCode "Combination Sum II"
    LeetCode "Divide Two Integers"
    LeetCode "First Missing Positive"
    LeetCode "Clone Graph"
    LeetCode "Decode Ways"
    LeetCode "Combinations"
  • 原文地址:https://www.cnblogs.com/zhangbaochong/p/4856646.html
Copyright © 2011-2022 走看看