DO-8 클릭 시 돌 놓기 기능

This commit is contained in:
Lim0_C 2025-03-12 17:29:20 +09:00
parent 81821191cb
commit ab1c18827c
11 changed files with 1450 additions and 484 deletions

View File

@ -73,15 +73,15 @@ SpriteRenderer:
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_Sprite: {fileID: -5177388603050735206, guid: 8884154dfe85442a3a3578be807dbcdf, type: 3}
m_Sprite: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 2
m_Size: {x: 1, y: 1}
m_DrawMode: 1
m_Size: {x: 0.90909094, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
m_WasSpriteAssigned: 1
m_WasSpriteAssigned: 0
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!1 &5190582617770859305
@ -159,12 +159,12 @@ SpriteRenderer:
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
m_SortingOrder: 1
m_Sprite: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_FlipX: 0
m_FlipY: 0
m_DrawMode: 2
m_DrawMode: 0
m_Size: {x: 1, y: 1}
m_AdaptiveModeThreshold: 0.5
m_SpriteTileMode: 0
@ -205,12 +205,12 @@ BoxCollider2D:
m_UsedByComposite: 0
m_Offset: {x: 0, y: 0}
m_SpriteTilingProperty:
border: {x: 0.25, y: 0.25, z: 0.25, w: 0.25}
pivot: {x: 0.5, y: 0.5}
oldSize: {x: 1, y: 1}
border: {x: 0, y: 0, z: 0, w: 0}
pivot: {x: 0, y: 1}
oldSize: {x: 0.32, y: 0.32}
newSize: {x: 1, y: 1}
adaptiveTilingThreshold: 0.5
drawMode: 2
drawMode: 0
adaptiveTiling: 0
m_AutoTiling: 0
serializedVersion: 2
@ -229,6 +229,12 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
stoneMarkerSpriteRenderer: {fileID: 5770392946303458469}
stoneSprites:
stoneTypeSprites:
- {fileID: 0}
- {fileID: 21300000, guid: 083b0d43f3b8eee488eff59d7b1f3427, type: 3}
- {fileID: 21300000, guid: 1874ff4312c00ce43a8482ceee14b0ed, type: 3}
stoneStateSprites:
- {fileID: 0}
- {fileID: 21300000, guid: 4ee0394bd289571428ac0c487e6145f4, type: 3}
- {fileID: 21300000, guid: b8e2ea457ecda71489a0735075b34094, type: 3}
- {fileID: 21300000, guid: 50876e5322c536b4eaae5ea62d0201f2, type: 3}

File diff suppressed because it is too large Load Diff

View File

@ -4,7 +4,7 @@ public class Enums
public enum PlayerTpe{None, PlayerA, PlayerB}
public enum StoneType{None, White, Black}
public enum StoneType{ None, Black, White }
public enum StoneState{ None, Selected, Blocked, Positioned}
public enum StoneState{ None, Selected, Blocked, LastPositioned }
}

View File

@ -6,14 +6,71 @@ using UnityEngine;
public class Stone : MonoBehaviour
{
[SerializeField] private SpriteRenderer stoneMarkerSpriteRenderer;
[SerializeField] private Sprite[] stoneSprites;
[SerializeField] private Sprite[] stoneTypeSprites;
[SerializeField] private Sprite[] stoneStateSprites;
private int index;
private int _index;
private SpriteRenderer _spriteRenderer;
public delegate void OnStoneClicked(int index);
private OnStoneClicked _onStoneClicked;
private void Awake()
{
_spriteRenderer = GetComponent<SpriteRenderer>();
}
// private void Start()
// {
// SetStone(Enums.StoneType.Black);
// SetState(Enums.StoneState.Selected);
// }
public void InitStone(int stoneIndex, OnStoneClicked onStoneClicked)
{
_index = stoneIndex;
SetStone(Enums.StoneType.None);
SetState(Enums.StoneState.None);
_onStoneClicked = onStoneClicked;
}
public void SetStone(Enums.StoneType stoneType)
{
switch (stoneType)
{
case Enums.StoneType.None:
stoneMarkerSpriteRenderer.sprite = stoneTypeSprites[0];
break;
case Enums.StoneType.Black:
stoneMarkerSpriteRenderer.sprite = stoneTypeSprites[1];
break;
case Enums.StoneType.White:
stoneMarkerSpriteRenderer.sprite = stoneTypeSprites[2];
break;
}
}
public void SetState(Enums.StoneState stoneState)
{
switch (stoneState)
{
case Enums.StoneState.None:
_spriteRenderer.sprite = stoneStateSprites[0];
break;
case Enums.StoneState.Selected:
_spriteRenderer.sprite = stoneStateSprites[1];
break;
case Enums.StoneState.Blocked:
_spriteRenderer.sprite = stoneStateSprites[2];
break;
case Enums.StoneState.LastPositioned:
_spriteRenderer.sprite = stoneStateSprites[3];
break;
}
}
private void OnMouseUpAsButton()
{
_onStoneClicked?.Invoke(_index);
}
}

View File

@ -1,18 +1,25 @@
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class StoneController : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
[SerializeField] private Stone[] stone;
private void Start()
{
InitStones();
}
// Update is called once per frame
void Update()
private void InitStones()
{
for (int i = 0; i < stone.Length; i++)
{
stone[i].InitStone(i, (index) =>
{
stone[index].SetStone(Enums.StoneType.White);
});
}
}
}

View File

@ -46,9 +46,9 @@ TextureImporter:
spriteMode: 1
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
alignment: 1
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 50
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
@ -72,7 +72,7 @@ TextureImporter:
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 44
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 44
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1

View File

@ -72,7 +72,7 @@ TextureImporter:
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 41
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
@ -72,7 +72,7 @@ TextureImporter:
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
textureCompression: 0
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0

View File

@ -48,7 +48,7 @@ TextureImporter:
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spritePixelsToUnits: 50
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1