首先需要一个image并加上Mesh组件,然后在他的子集下加一个新的image作为地图,再加一个指针表示玩家即可。
我们要确定玩家在小地图上的位置,通过比例来计算,小地图的精灵图片是游戏地图的俯视图。所以只要知道玩家在地图上的比例就可以算出小地图的比例。
首先我们要知道游戏地图左下角坐标,可以放一个cube来确定坐标,之后要知道地图的宽度
x=(玩家坐标.x-地图左下角坐标.x)/地图宽度 算出x轴的比例,同理算出z轴比例
z=(玩家坐标.z-地图左下角坐标.z)/地图z轴宽度
此时我们要改变地图image的锚点,map_icon.rectTransform.pivot = new Vecor2(x, z);
现在地图锚点0,0的位置上就是玩家所在的位置。map_icon.transform.localPosition = Vector2.zero;来调整地图image的中心,让地图image的中心是锚点0,0.
最后获取玩家的欧拉角来让指针根据玩家的角度来旋转即可
player_icon.transform.eulerAngles = new Vector3(0, 0, -player.eulerAngles.y);
完整代码如下:
float pointX = (player.position.x - gameMap.position.x)/ wid;
float pointZ = (player.position.z - gameMap.position.z/ hid;
map_icon.rectTransform.pivot = new Vector2(pointX, pointYZ;
map_icon.transform.localPosition = Vector2.zero;
player_icon.transform.eulerAngles = new Vector3(0, 0, -player.eulerAngles.y);