Unity 制作小地图

搭建简易游戏场景:

Unity 制作小地图_第1张图片

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

Unity 制作小地图_第2张图片

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

Unity 制作小地图_第3张图片

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

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

Unity 制作小地图_第4张图片

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

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

Unity 制作小地图_第5张图片

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

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

Unity 制作小地图_第6张图片

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

Unity 制作小地图_第7张图片



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

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));
    }
}

你可能感兴趣的:(ジ﹋★☆『,自,卟,說,』,Unity,实例练习)