• Unity:小地图 Minimap


    、制作地图素材

    实时渲染:主场景和小地图各需要渲染一次,非常耗性能。

    预渲染:地图顶视图渲染成一张图片(推荐☆☆☆

    美术制作:纯粹靠美术手绘,可能跟实际不符。

    好的,我们用最简单粗暴的方法,调整到Top视角,把Scene拉到最大,直接截图。放到Resources目录下,方便后面切换地图时加载小地图。

    二、制作小地图UI

    1. 创建一个空物体Minimap,锚点定位到右上角,拉出来小地图所占的区域大小。

    2. 创建一个子物体Image_Border,用来放小地图的边框。

    3.创建一个子物体Image_Mask,用来放Mask,记得添加Mask组件。

    4.Mask下创建一个子物体Image_minimap,这个就用来动态加载小地图图片啦!

    三、配置小地图并加载

    配置信息:地图ID、地图名字、地图类型(PVE?PVP?)、Resources里的文件名...

    配置方式:可以用Excel写,然后用Excel2Json工具,或者直接用Json写。

     加载:Minimap上挂载脚本

    在Start()里初始化,加载小地图图片。

    1 void Init()
    2 {
    3     //加载小地图图片
    4     this.minimap.overrideSprite = Resources.Load<Sprite>("UI/Minimap/MainCity");
    5     // 跟手动操作一样,设置成原始大小
    6     this.minimap.SetNativeSize();
    7     // 局部坐标全为0
    8     this.minimap.transform.localPosition = Vector3.zero;      
    9 }

    在Update()里更新小地图位置信息。

     1 //制作一个Cube与地形完全重合,获取Collider,根据Collider得到地图的长宽
     2 public Collider minimapBoundingBox;
     3 //一个向上的箭头代表玩家的位置
     4 public Image arrow;
     5 void Update()
     6 {
     7     //获取地图的长宽
     8     float realWidth = minimapBoundingBox.bounds.size.x;
     9     float realHeight = minimapBoundingBox.bounds.size.z;
    10     //角色坐标转化成地图坐标
    11     float relaX = playerTransform.position.x - minimapBoundingBox.bounds.min.x;
    12     float relaY = playerTransform.position.z - minimapBoundingBox.bounds.min.z;
    13     //小地图是跟着玩家走的,可以把玩家的位置设置为中心点,这样玩家就始终在小地图中心了。
    14     float pivotX = relaX / realWidth;
    15     float pivotY = relaY / realHeight;
    16     this.minimap.rectTransform.pivot = new Vector2(pivotX, pivotY);
    17     this.minimap.rectTransform.localPosition = Vector2.zero;
    18     //箭头跟着玩家旋转,玩家是绕y轴旋转的,而小地图箭头是绕z轴旋转的
    19     this.arrow.transform.eulerAngles = new Vector3(0, 0, -playerTransform.eulerAngles.y);
    20 }

    好了一个简易的只显示玩家位置的小地图就做好了。

  • 相关阅读:
    揭开HTTPS神秘面纱
    HTTP常见状态码
    js常用小代码
    通俗讲解OSI七层模型
    WSCDL所在的协议栈位置
    Models and Verification of BPEL
    mysql root密码修改
    c++ Socket 学习笔记一
    mysql备份
    圣杯布局
  • 原文地址:https://www.cnblogs.com/tomatokely/p/15875964.html
Copyright © 2020-2023  润新知