UI面板小地图实现

首先需要一个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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值