마름모 배치 공간 추가

This commit is contained in:
yonggyun 2025-06-25 20:20:15 +09:00
parent 00e2489036
commit 7ad0f770af
5 changed files with 208 additions and 0 deletions

View File

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 7925bf4ddbff8564e90c78e31d29629b
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.4 KiB

View File

@ -0,0 +1,130 @@
fileFormatVersion: 2
guid: 3f7e2890dfe9e6748b793ed18a7db18e
TextureImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 12
mipmaps:
mipMapMode: 0
enableMipMap: 0
sRGBTexture: 1
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
vTOnly: 0
ignoreMasterTextureLimit: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: 2
aniso: 1
mipBias: 0
wrapU: 0
wrapV: 0
wrapW: 0
nPOTScale: 0
lightmap: 0
compressionQuality: 50
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 256
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 1
spriteTessellationDetail: -1
textureType: 8
textureShape: 1
singleChannelComponent: 0
flipbookRows: 1
flipbookColumns: 1
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
ignorePngGamma: 0
applyGammaDecoding: 0
cookieLightType: 0
platformSettings:
- serializedVersion: 3
buildTarget: DefaultTexturePlatform
maxTextureSize: 256
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
- serializedVersion: 3
buildTarget: Server
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
forceMaximumCompressionQuality_BC6H_BC7: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID: 5e97eb03825dee720800000000000000
internalID: 0
vertices: []
indices:
edges: []
weights: []
secondaryTextures: []
nameFileIdTable: {}
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 239234
packageName: Easy Grid Builder Pro
packageVersion: 1.1.1
assetPath: Assets/EasyGridBuilder Pro/Prefabs/Canvas Grid Samples/White Box Rounded.png
uploadId: 666238

View File

@ -0,0 +1,68 @@
using UnityEngine;
public class CellManager : MonoBehaviour
{
public RectTransform cellCanvas;
public RectTransform cell;
// 0 == 비어있음, 1 == 차있음, 2 == 잠김
private const int mapSize = 30;
private int[] tiles;
private RectTransform[] tileUIs;
void Start()
{
tiles = new int [mapSize * mapSize];
// TODO: 데이터 입력
for (int i = 0; i < mapSize * mapSize; i++)
{
tiles[i] = 0;
}
cell.SetParent(null);
cell.gameObject.SetActive(false);
tileUIs = new RectTransform[mapSize * mapSize];
for (int i = 0; i < mapSize * mapSize; i++)
{
var newCell = Instantiate(cell, cellCanvas);
newCell.gameObject.SetActive(true);
tileUIs[i] = newCell.GetComponent<RectTransform>();
}
UpdateCells();
}
Vector3 CellToWorld(Vector2Int cellPos)
{
var worldX = (cellPos.x - cellPos.y) * 0.5f * 1.414f;
var worldZ = -(cellPos.x + cellPos.y) * 0.5f * 1.414f;
return new Vector3(worldX, 0f, worldZ);
}
Vector2Int WorldToCell(Vector3 worldPos)
{
var cellX = Mathf.RoundToInt((worldPos.x - worldPos.z)/ 1.414f);
var cellY = Mathf.RoundToInt((-worldPos.z - worldPos.x) / 1.414f);
return new Vector2Int(cellX, cellY);
}
int GetCellID(Vector2Int cellPos)
{
return cellPos.x + cellPos.y * mapSize;
}
Vector3 GetCellWorldPos(int cellPos)
{
return CellToWorld(new Vector2Int(cellPos / mapSize, cellPos % mapSize));
}
public void UpdateCells()
{
for (int i = 0; i < mapSize * mapSize; i++)
{
tileUIs[i].anchoredPosition3D = GetCellWorldPos(i);
}
}
}

View File

@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 0cf09e2bb72956a419b94848ab48c404