首頁 > 軟體

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

2022-07-22 22:01:01

本文範例為大家分享了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);
    }
}

儲存回到編輯器,拖入預製件到指令碼介面

源影象的軸點位置可能需要調整

執行測試

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援it145.com。


IT145.com E-mail:sddin#qq.com