Unity实现简单小地图功能
前言
在很多的游戏中都有小地图的功能,例如现在大火的吃鸡类游戏、MOBA类游戏、FPS射击类游戏等等,而且我在开发的很多项目中也碰到过很多类似的需求,在这篇博客中简单介绍下使用Unity实现简单小地图的功能。
步骤
1.在主角身上新建一个子物体,在这里用一个sphere替代,起名为dummy,如下图所示:
2.新建一个Material,将其Shandr设置为Legacy Shader/Self-Illimin/Diffuse,随便选择一种颜色,如下图所示:
3.将此Material挂载到dummy上,并新建一个Layer层,取名为dummy,将dummy物体的Layer层选择为dummy,如下图所示:
4.继续新建一个Layer层,起名为diXing,将Terrain的Layer层选择为diXIng,如下图所示:
5.新建一个Camera,将此Camera拉至主角上方,并且调整角度,使其能够俯视主角,具体参数根据实际情况调整,如下图所示:
6.为Camera添加跟随功能,使其能够跟着主角移动但不会跟着主机旋转,脚本代码如下所示:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MapCameraControl : MonoBehaviour
{
#region 参数
//跟随的物体
public Transform followObject;
//跟随的三位数
Vector3 vector;
#endregion
#region 常规方法
// Use this for initialization
void Start ()
{
vector = this.transform.position - followObject.position;
}
private void LateUpdate()
{
ToFollow();
}
#endregion
#region 私有方法
void ToFollow()
{
this.transform.position = followObject.position + vector;
}
#endregion
}
7.新建一个RenderTexture,它的作用是将小地图Camera显示在UI上,具体参数调整如下图所示:
8.将RenderTexture,Camera跟随脚本挂载到小地图Camera上,将小地图Camera的Culling Mask只选择dummy,diXing层,使它只能看到dummy物体和地形,设置如下图所示:
9.在场景中新建一个RawImage,将RenderTexture挂载到它的Texture上,如下图所示:
10.至此,一个简单的小地图搭建基本完成,里面主角移动以及其他设置不在这里赘述了,运行工程,效果如下图所示:
后记
知识和技能是一点一滴积累起来的,加油!