워리어 콤보 모작 개발일지 14

워리어콤보 모작 개발일지 - 블럭 되돌아갈 때 선그리기, 되돌아갈 때 블럭 2개 이하면 삭제 안되게하기, 되돌아갈 때 prev 위치 정해줘서 블럭 3개 이상이면 삭제시키기

할 일 목표 : "일치함"상태일 때 stack.Pop() 해주기, 빼준 후에 데이터로 선 그리기 Prev, Curr, Next 를 이용해서 해준 결과 1. 오류 : Prev가 이전 꺼 "한개의 위치"만 찾아주고 그 다음부터는 다시 그 마우스 지점의 "이전" 위치가 동기화 되고있다. 1. 오류 해결 결과 1. 오류 해결 방법 : "일치함" 상태일 때 Pop() 해준 스택을 배열로 바꿔준 후 Prev 값에 그 배열에서 나온 필요한 Prev 위치를 할당해주었다. this.prevLocation 에다가 info[idx] 값을 할당해줘서 위치를 할당해주었다. 2. 오류 : 위에 영상을 보면 마지막에 오류가 나는데 그 오류 내용이 처음 지점으로 돌아갔을 때 스택을 배열로 바꿔준 후 그 값을 prev 값에다가 넣어주..

워리어콤보 개발일지 - 뒤로 갈 때 "일치함" 콘솔창에 띄우기

할 일 stack.ToArray()로 스택 0번부터 ~ i번까지 정보 가져오기 내가 생각한 출력 결과물 (아래 좌표라 적혀있는거임) 해결방법 stack.ToArray() -> 배열에 담아서 Debug.Log 찍기 TestSaveLocation에는 type, row, col 값이 들어있는데 이 값을 그냥 stackBlock.ToArray()로 Debug.Log 하면 그냥 Block의 정보만 나왔다. 어떻게 해야할지 고민하던중 그럼 배열에 넣어서 type값도 가져오고 row, col 값도 가져오자 생각이 들어서 배열에 ToArray를 넣어서 가져오게 되었다. 근데 뭔가 생각해보니까 1, 2, 3을 넣는다 가정하면 스택은 3 -> 2 -> 1 순으로 들어가고 큐는 1 -> 2-> 3 순으로 들어가서 스택 Pu..

워리어콤보 개발일지 - Stack, LineRenderer

사용한 함수 : Stack, LineRenderer https://learn.microsoft.com/ko-kr/dotnet/api/system.collections.stack?view=net-7.0 Stack 클래스 (System.Collections) 제네릭이 아닌 개체의 간단한 LIFO(Last In First Out: 마지막에 들어간 것부터 사용) 컬렉션을 나타냅니다. learn.microsoft.com https://docs.unity3d.com/ScriptReference/LineRenderer.html Unity - Scripting API: LineRenderer Success! Thank you for helping us improve the quality of Unity Document..

워리어콤보 개발일지 - Block 삭제하기

Block 삭제하기 목표 Block 삭제하는 방법을 생각해봤고, 기존에 만들었던 TestSaveLocation에다가 List를 추가해서 마우스 버튼을 누르는 상태일 때 그 gameObject를 저장하는 SaveBlock이라는 메서드를 만들었고 마우스 버튼을 뗀 상태일 때 저장한 gameObject를 삭제하는 DestroyBlock이라는 메서드를 만들었다. 처음에는 TestSaveLocation에 row와 col값을 저장했으니 거기서 저장과 삭제 처리를 해야지 생각하고 이렇게 TestSaveLocation에다가 메서드를 만들어서 TestMain에서 마우스버튼을 누르고있을 때 SaveBlock을 눌러서 데이터를 저장하고 DestroyBlock으로 데이터를 삭제시키는 메서드를 불러왔다. 오류 발생 근데 계속 ..

워리어콤보 개발일지 - Block 인식하기

Block을 인식하게 하고싶은데 계속 Block과 Wall 사이 공간을 클릭하거나 그러면 NullReference가 떠서 왜 뜨는지 뭔가 hit.collider가 null일 때 Debug도 찍어보고 location이 null인가? 해서 debug찍어보고 했었는데 그게 아니라 hit를 false 일 때 return 하게 만들었더니 해결이 되었다. 고치기 전 고친 후 추가된 코드 hit가 false면 return 하게 만들었다. 그랬더니 nullreference가 없어졌다. 도움 https://stackoverflow.com/questions/42788004/physics2d-raycast-returning-null Physics2D.Raycast returning null I have a bit of a ..

워리어콤보 개발일지 - 좌표찍기

생각들, 퍼즐 구성 자체를 처음해봐서 그런지 전혀 감도 안잡히다가 강사님이 말씀해주신 Raycast로 좌표찍기를 했는데 좌표가 계속 (0,0) 이 나와서 어떻게 해야할지 몰랐다. 해결하게된 방법 - 후 코드 TestSaveLocation이라는 스크립트를 Block과 Wall Prefab에 넣어두고 생성이 될 때마다 GetLocation이라는 메서드로 위치 정보를 (0,0), (0,1) ... 이렇게 계속 저장해주었고 PutLocation이라는 메서드로 위치정보를 Debug.Log로 찍어주는 메서드였다. 근데 계속 (0,0)이 나와서 왜 그런지.. 몇시간 동안 계속 헷갈렸는데 이유를 알아냈다. 전 코드 계속 Wall이랑 Block을 찍어서 gameObject를 받아와도 TestMain 함수 내에서 Test..

워리어콤보 개발일지 - Test [보드생성]

using System.Collections; using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.UI; public class TestMain : MonoBehaviour { [SerializeField] private GameObject wallPrefab; [SerializeField] private GameObject blockPrefab; [SerializeField] private Transform boardTr; private TestBlock testBlock; private int[,] str = { {0, 0, 4, 2, 4, 0, 0}, {0, 0, 5, 1, 2, 0, 0},..

워리어콤보 개발일지 - 2차원 배열 출력

using System.Collections; using System.Collections.Generic; using System.Text; using UnityEngine; using UnityEngine.UI; public class TestMain : MonoBehaviour { private int[,] str = { {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 1, 1, 1, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0} }; // Start is called before the first frame update voi..

워리어콤보 모작 개발일지 - 04 [StageInfo, StageReader][연습]

https://docs.unity3d.com/ScriptReference/JsonUtility.ToJson.html Unity - Scripting API: JsonUtility.ToJson Internally, this method uses the Unity serializer; therefore the object you pass in must be supported by the serializer: it must be a MonoBehaviour, ScriptableObject, or plain class/struct with the Serializable attribute applied. The types of fields that y docs.unity3d.com 참고 https://ninezm..