- 一、前言
- 二、小地图的制作
- 1.小地图制作
- 2.小地图美化
- 三、小地图展示主角移动和主角方向
- 四、小地图放大、缩小
- 五、大小地图
- 六、大地图显示主角移动和主角方向
由于游戏设计,场景较大,且最终玩家在进行相关游戏之后,仍需回到中心点处进行其他活动,单纯的采用只展示部分场景的小地图,可能使玩家在场景中难以找到中心点,影响游戏效率。
二、小地图的制作 1.小地图制作小地图制作
2.小地图美化添加相关遮罩和按钮,同时增加一个image,拖入小箭头的照片,代表小地图上的人物指示
三、小地图展示主角移动和主角方向添加脚本
void Update () {
minicamera.transform.position = new Vector3(player.position.x, minicamera.transform.position.y, player.position.z);
miniplayerIcon.eulerAngles = new Vector3(0, 0, -player.eulerAngles.y);
}
将小地图的相机、人物、箭头赋值
最终结果如下图,人物转动时,箭头也会发生转动
前期知识:
摄像机
对小地图中的±image添加button组件
添加一个改变地图大小的功能
public void ChangeMapSize(float value)
{
mapSize += value;
mapSize = Mathf.Clamp(mapSize, minSize, maxSize);
minicamera.orthographicSize = mapSize;
}
}
增加相机最大最小值限定
public float minSize;//小地图的orthographicSize最小值
public float maxSize; //小地图的orthographicSize最大值
按钮上传入的值,-+符号的按钮分别是的正数和负数。数值自定义
最终结果:
点击+按钮
点击-按钮
两张图显示可以看到的地图范围发生改变
复制已经制作的小地图
考虑大小地图的不同:
- 大地图无须放大缩小功能,删掉±按钮
- 大小地图显示的尺寸不同
大小地图的切换
//打开大地图
public void OpenMaxmap()
{
maxmap.gameObject.SetActive(true);
minimap.gameObject.SetActive(false);
minicamera.orthographicSize = Maxmapsize;
}
//打开小地图
public void OpenMinimap()
{
maxmap.gameObject.SetActive(false);
minimap.gameObject.SetActive(true);
minicamera.orthographicSize = mapSize;
}
同时,比上次的代码增加了 public float Maxmapsize;//大地图的orthographicSize大小,该变量为了将相机的范围扩大,是给大地图赋值的,大地图的范围要比小地图大。赋值如下:
并在展开大地图、小地图按钮上添加相关方法,即可点击按钮实现大小地图的切换。
结果如下:
移动等代码与小地图一样,增加了如下
maxplayerIcon.eulerAngles = new Vector3(0, 0, -player.eulerAngles.y);
使地图中的人物图标会根据3D物体的人物转动而转动
同时为了切换地图还增加了isMaxmap的变量,目的就是检测是否打开大地图。
//打开大地图
public void OpenMaxmap()
{
maxmap.gameObject.SetActive(true);
minimap.gameObject.SetActive(false);
minicamera.orthographicSize = Maxmapsize;
isMaxmap = true;
}
//打开小地图
public void OpenMinimap()
{
maxmap.gameObject.SetActive(false);
minimap.gameObject.SetActive(true);
minicamera.orthographicSize = mapSize;
isMaxmap = false;
}



