using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.U2D;
public class AtlasManager : MonoBehaviour
{
public static AtlasManager instance;
public SpriteAtlas blockAtlas;
//싱글톤
private void Awake()
{
//AtlasManager 클래스의 인스턴스를 instance에 할당
instance = this;
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Block : MonoBehaviour
{
public enum BlockType
{
Blue, Gray, Green, Pink, Yellow
}
public BlockType blockType;
public SpriteRenderer spriteRenderer;
public void Init(BlockType blockType)
{
this.blockType = blockType;
//이미지 변경
ChangeSprite(blockType);
}
public void ChangeSprite(BlockType blockType)
{
//블록의 이름을 넣어서 아틀라스에서 같은 이름인 sprite를 찾고 할당
Sprite sp =
AtlasManager.instance.blockAtlas.GetSprite(blockType.ToString());
spriteRenderer.sprite = sp;
}
public void SetPosition(int x)
{
Vector2 pos = transform.position;
pos.x = x;
transform.position = pos;
}
}
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Unity.VisualScripting;
using UnityEngine;
public class Test : MonoBehaviour
{
private Block[] board; //1차원 배열이 Block들을 관리
public GameObject blockPrefab;
void Start()
{
CreateBoard();
PrintBoard();
}
private void CreateBoard()
{
//크기가 9인 BlockType의 1차원 배열 만들기
board = new Block[9];
//배열의 요소에 넣기(0~8까지의 랜덤한 값을 BlockType으로 바꿔서)
for (int i = 0; i < board.Length; i++)
{
Block.BlockType blockType = (Block.BlockType)Random.Range(0, 5);
//블록 프리팹 인스턴스를 생성
GameObject blockGo = Instantiate(blockPrefab);
//생성된 프리팹을 블록클래스의 블록에 할당
Block block = blockGo.GetComponent<Block>();
block.Init(blockType);
block.SetPosition(i);
}
}
private void PrintBoard()
{
StringBuilder sb = new StringBuilder();
for (int i = 0; i < board.Length; i++)
{
sb.Append($"{board[i]}");
}
Debug.Log(sb);
}
}
https://learn.microsoft.com/ko-kr/dotnet/api/system.text.stringbuilder?view=net-8.0
'Solo > Puzzle' 카테고리의 다른 글
[3Match Puzzle] 블록 에디터 만들어서 제거 하기 (0) | 2024.06.17 |
---|---|
[3Match Puzzle] 메인 카메라 위치 변경 하기 (0) | 2024.06.16 |
[3Match Puzzle] 보드 스크립트 만들어서 블록들 생성 시 부모로 묶기 (0) | 2024.06.16 |
[3Match Puzzle] 2차원 배열로 보드 만들기(블록 만들기) (0) | 2024.06.16 |
[3Match Puzzle] 2차원 배열을 만들기 (0) | 2024.06.16 |