monery8 发表于 2012-12-16 15:46

Unity3D小地图代码


using UnityEngine;
using System.Collections;

public class Pic : MonoBehaviour {
//假定我们的小地图为128*128pixels
public Texture2D smallMap = new Texture2D(128, 128);
public Texture2D backTexture;//这个是小地图的大的背景图。
public Camera aa;//这里依照摄像机的位置来判断,如果是rpg等有角色的游戏则该成gameobject即可
public float worldwidth = 1000;//世界的宽度和长度,就是游戏场景的大小。我这里假定1000大家可以按照自己游戏的实际大小来写
public float wordheight= 1000;
public float Ratex,Ratey;
private int possmallMapx,possmallMapy;
private int x1,y1;
private Color mapColor;
void Update () {
if (backTexture){
Ratex = (aa.transform.position.x)/worldwidth;
Ratey = (aa.transform.position.z)/wordheight;
possmallMapx = (int)(bigMap.width*Ratex);
possmallMapy = (int)(bigMap.height*Ratey)
x1 = possmallMapx-smallmapbig/2;
y1 = possmallMapy-smallmapbig/2;
for( int y=0; y < 128; ++y) {
for (int x=0; x < 128; ++x) {
mapColor= bigMap.GetPixel(x1+x,y1+y);
smallMap.SetPixel(x,y,mapColor) ;
}
}
smallMap.Apply();
}
}
void OnGUI () {
// 地图绘制在右上角,按照自己习惯,rect 随便修改即可
GUI.DrawTexture(new Rect(Screen.width-128,0,128,128),smallMap);
}
}

lixiaozhe868 发表于 2013-5-15 17:42


感谢楼主的无私分享!{:soso__11402694654016840197_7:}

wwwang89 发表于 2013-7-27 14:53

{:5_397:}{:5_412:}{:5_412:}{:5_412:}{:5_387:}

零零七 发表于 2013-7-31 15:38

不错啊,谢谢

peterlee 发表于 2013-8-1 09:57

零零七 发表于 2013-7-31 15:38 static/image/common/back.gif
不错啊,谢谢

不错不错,简单明了!

beaver 发表于 2015-6-11 15:48

非常棒!回去试试!

hilive 发表于 2017-6-8 22:10

好帖就是要顶

天堂不过如此 发表于 2017-6-8 22:22

真心顶

鬼醫十三 发表于 2017-6-8 21:46

说的非常好

zxs19910517 发表于 2017-6-8 21:40

不错不错
页: [1]
查看完整版本: Unity3D小地图代码