不要相信网上那些使用rendertexture的家伙,真正实际应用一定是使用美术出图计算相对位置的
直接上代码。
假如已知坐标点
arrMinUIPos 小地图背景图上随便一个min点坐标(x,y) , 是游戏内小地图背景图的localPosition
arrMaxUIPos 另外一个ui点
arrMinMapPos 对应于小地图背景图上min点坐标的在地图上的坐标, 场景地图下的localPosition
arrMaxMapPos 另外一个ui点对应的地图点
这些点就根据参照物去随便找,比如找个显眼的东西。
public Vector3 ScenePos2UIPos(Vector3 scenePos)
{
float scaleX = (arrMaxMapPos[0] - arrMinMapPos[0]) / (arrMaxUIPos[0]- arrMinUIPos[0]);
float scaleY = (arrMaxMapPos[1] - arrMinMapPos[1]) / (arrMaxUIPos[1]- arrMinUIPos[1]);
float x = 0;
float y = 0;
scaleX = (arrMaxMapPos[0] - scenePos.x) / (arrMaxUIPos[0]-x);
x = arrMaxUIPos[0] - ((arrMaxMapPos[0] - scenePos.x) / scaleX);
scaleY = (arrMaxMapPos[1]-scenePos.z)/(arrMaxUIPos[1]-y);
y = arrMaxUIPos[1] - ((arrMaxMapPos[1] - scenePos.z) / scaleY);
return new Vector3(x, y, 0);
}