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。