[유니티] InputSystem이 동작안하는 오류
·
Unity
문제원인 위처럼 OnAttack이라는 함수를 이용해, 마우스 왼쪽버튼을 누르면 "공격버튼 눌림"이라는 메세지를 띄우려고 했으나,동작하지 않았다. 해결방안 Input System Package -> Supported Devices에 마우스를 추가하지 않아서 생긴 오류였다.
[유니티] You are trying to read Input using the UnityEngine.Input class, but you have switched active Input handling to Input System package in Player Settings.
·
Unity
문제원인Project -> Player -> OtherSetting -> Configuration -> Active Input Handling을 InputManager로 했었는데.시뮬레이션 상으로는 Both로 세팅해야하나보다. 해결방안 setting을 Both로 변경하여 오류를 해결하였다.
파괴하는 도중에 오브젝트 생성 오류
·
Unity/2D
문제원인싱글톤패턴을 사용하기위해 싱글톤 제네릭 클래스를 상속받은 형태로 코드를 구성할경우,해당 클래스의 instance가 존재하지않으면 오브젝트를 새로 생성하게된다.   위 처럼 파괴되는 시점에 singleton 클래스를 상속받은 클래스의 instance를 참조하게되면,파괴되는 도중에 해당 클래스가 다시 생성되는 경우가 발생하게된다. 즉, 게임이 종료되어 오브젝트들이 정리되는 와중에 파괴했던 오브젝트가 다시 참조되어 생성된다는 의미이다. 해결방안 _applicationIsQuitting 이라는 flag를 만들어, 지금 게임이 종료되고 있는 시점인지 감지하여,게임이 종료중이라면, instance를 참조하더라도 해당 오브젝트를 생성하지 않도록 return하는 코드를 추가해주면 된다.
오브젝트가 파괴되었는데 참조하려고한다.. 오류
·
Unity/2D
문제원인게임이 오버되고 재시작하여 플레이어 오브젝트를 파괴하고 재생성을 했다.이후 장애물과 부딪혔더니 플레이어의 스크립트에 충돌과 관련된 기능을 담당하는 코루틴 부분에서 오류가 발생했다.  오브젝트가 파괴되면 원래 실행중인 코루틴은 자동으로 종료가 된다.또한 PlayerHitCorutine은 실행될때마다 새롭게 할당을 하기 때문에 이해가 가지않았다.오브젝트가 파괴되었어도 새롭게 생성후 다시 코루틴 변수 할당을 해주는데 해당 오류가 뜬 원인이 무엇일까.  해결방안해당 문제의 원인을 마이크로소프트의 프로그래밍 가이드에서 알수 있었다.https://learn.microsoft.com/ko-kr/dotnet/csharp/programming-guide/events/how-to-subscribe-to-and-un..
프로그래머스 C# 문자열 내 마음대로 정렬하
·
알고리즘
문제 설명 해결방안using System;using System.Linq;public class Solution{ public string[] solution(string[] strings, int n) { return strings.OrderBy(o => o[n]).ThenBy(t => t).ToArray(); }}
프로그래머스 C# 숫자 문자열과 영단어
·
알고리즘
문제 설명 해결방안using System;public class Solution { public int solution(string s) { int answer = 0; s = s.Replace("zero", "0"); s = s.Replace("one", "1"); s = s.Replace("two", "2"); s = s.Replace("three", "3"); s = s.Replace("four", "4"); s = s.Replace("five", "5"); s = s.Replace("six", "6"); s = s.Replace("seven", "7"); ..
프로그래머스 C# 시저 암호
·
알고리즘
문제 설명 해결방안using System;public class Solution { public string solution(string s, int n) { string answer = ""; foreach(char c in s) { if(c!=' ') { int tmp = 0; if((int)c90) tmp = 64 + (tmp-90); } else { tmp = (int)c + n; if(t..
프로그래머스 C# 최소직사각형
·
알고리즘
문제설명 해결방안using System;public class Solution{ public int solution(int[,] sizes) { int maxWidth = 0; int maxHeight = 0; for (int i = 0; i