Unity 制作小地图

搭建简易游戏场景:

1

创建Plane作为地形并命名为Background,注意更改图层以便小地图的摄像机渲染到(我这里使用UI),,,如下图:(注意要附上材质,纯色不便于观察主角是否发生了移动)

bg

接着创建主角(我这里用胶囊体代替),并且编写脚本控制主角的移动和摄像机跟随,,,设置它的图标,其属性设置如下图:

icon

然后创建出敌人,并且编写脚本让他自己移动,,,敌人的图标也和主角一样,做为自己的子物体存在,注意更改相机渲染层,并且更改上自己的图标,,,

接下来就是创建出小地图的渲染摄像机了,,我让摄像机作为主角的子物体,并且更改为正交模式,渲染层把不需要的剔除(我这里地形和图标都放在了UI层,所以只渲染UI层),摄像机属性设置如下图:(size是摄像机的照射范围)

camera

接下来我们在Project面板上右键–Create–Render Texture,创建出要显示小地图Texture命名为MinMapTexture,,然后指定到渲染小地图的摄像机上,(即上图的Target Texture),,,

然后创建出我们想要的小地图形状的这遮罩材质球:属性设置如下图:

mask

在Costom目录下没有Mask的同学请点击:http://pan.baidu.com/s/1c19TArI,,
将下载下来文件夹添加到工程中再次设置,,,

最后,我是用UGUI的Raw Image 接收MinMapTexture,,将其显示在游戏场景中,,,

raw image

这样运行游戏即可看到,小地图的效果,如下图:

game



参考代码:
主角移动代码:

using UnityEngine;

public class PlayerMove : MonoBehaviour {

    public GameObject Camera;
    public float speed = 4;

    // Use this for initialization
    void Start () {
        Camera = GameObject.Find("Main Camera");
        Camera.transform.Rotate(new Vector3(30, 0, 0));
    }

    // Update is called once per frame
    void Update () {
        float x = Input.GetAxis("Horizontal");
        float y = Input.GetAxis("Vertical");
        this.transform.Translate(new Vector3(0,0,y) * speed *Time.deltaTime);
        this.transform.Rotate(new Vector3(0, x, 0));

    }

    private void LateUpdate()
    {
        Camera.transform.position = this.transform.position+new Vector3(0,5,-8);       
    }
}

敌人自行移动的代码:

using UnityEngine;

public class EnemyMove : MonoBehaviour
{
    public float speed = 2;

    void Update()
    {

        float x = Random.Range(0, 1f);
        float y = Random.Range(0, 1f);

        this.transform.Translate(new Vector3(0, 0, y) * speed * Time.deltaTime);
        this.transform.Rotate(new Vector3(0, x, 0));
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈言必行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值