Unity創建平鋪網格地圖的方法

本文實例為大傢分享瞭Unity創建平鋪網格地圖的具體代碼,供大傢參考,具體內容如下

創建預制件

先拖進場景,再從層級拖回資源

選中源圖像文件,設置每單位像素可以不改變組件縮放修改顯示大小

腳本編輯

創建一個空對象和腳本文件

掛載腳本到空對象

 雙擊腳本進入編輯

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class CreateMap : MonoBehaviour
{
    //私有變量暴露到編輯器
    [SerializeField]
    private GameObject tile;
 
    //獲取精靈圖像的寬度
    public float TileSize
    {
        get
        {
            return tile.GetComponent<SpriteRenderer>().sprite.bounds.size.x;
                    //GetComponent :用來訪問對象的組件
                    //Sprite Renderer :用於渲染 [ 精靈 ] 並控制其在 2D 和 3D 項目場景中的可視化效果
                    //sprite:是一種 2D 圖形對象,圖形從位圖圖像 Texture2D 獲取,主要用於精靈的圖像部分,然後GameObject 上的 SpriteRenderer 組件可以使用該信息來實際顯示圖形
                    //Bounds:由精靈的中心和范圍(采用世界空間單位)指定
        }
    }
 
    // Start is called before the first frame update
    void Start()
    {
        CreateLevel();
    }
 
    // Update is called once per frame
    void Update()
    {
        
    }
 
    private void CreateLevel()
    {
        //把屏幕左上角坐標轉換為世界空間坐標
        Vector3 worldStart = Camera.main.ScreenToWorldPoint(new Vector3(0,Screen.height));
            //ScreenToWorldPoint:從屏幕空間到世界空間的變化位置。屏幕空間以像素定義。屏幕的左下為(0,0);右上是(pixelWidth,pixelHeight),Z的位置是以世界單位衡量的到相機的距離
            //Vector3 :通過轉換到攝像機平面距離為 z 的屏幕空間點創建的世界空間點,這個返回值,前兩個分別代表在屏幕坐標的x軸與y軸,屏幕左下角為起點(0,0),水平為x軸,豎直為y軸,這個返回值,前兩個分別代表在屏幕坐標的x軸與y軸,屏幕左下角為起點(0,0),水平為x軸,豎直為y軸
            //Screen:提供對顯示信息的訪問。使用Screen類獲取支持的屏幕分辨率列表、切換當前分辨率或隱藏或顯示系統鼠標指針
            //.height:屏幕窗口的當前高度(以像素為單位)(隻讀)
 
        for (int y = 0; y < 6; y++)
        {
            for (int x = 0; x < 13; x++)
            {
                PlaceTile(x,y, worldStart);
            }
        }
    }
 
    private void PlaceTile(int x,int y, Vector3 worldStart)
    {
        //從左上角開始貼圖
        GameObject newTile = Instantiate(tile);
        newTile.transform.position = new Vector3(worldStart.x+(TileSize * x), worldStart.y-(TileSize * y), 0);
    }
}

保存回到編輯器,拖入預制件到腳本接口

源圖像的軸點位置可能需要調整

運行測試

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: