728x90
반응형

Game Development, 게임개발/개발 98

주어진 기준에 가장 가까운 값 출력하기 - Unity

이건 조금 생각해봐야 했던 문제다. 최솟값임을 알기 위해서는 모든 데이터를 훑어봐야하고 최솟값을 구했다면 해당하는 값이 무엇인지 조사해봐야했다. https://www.codingame.com/ide/puzzle/temperatures #풀이 using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * Auto-generated code below aims at helping you parse * the standard input according to the problem statement. **/ class Solution ..

오브젝트를 해당 위치로 옮기기 - Unity

이 문제도 기본적이면서 어려운 문제일 수 있다. 이 역시 생각의 흐름을 써놓아야 하기 때문에 기록한다 https://www.codingame.com/ide/puzzle/power-of-thor-episode-1 #풀이 using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * Auto-generated code below aims at helping you parse * the standard input according to the problem statement. * --- * Hint: You can use the de..

가장 큰 값부터 없애기 - C#

뭐 어렵지 않은데 어떤 언어로도 구현할 수 있으려면 내 생각 과정을 자세히 적어야 할 것 같아서 기록한다. https://www.codingame.com/ide/puzzle/the-descent #풀이 using System; using System.Linq; using System.IO; using System.Text; using System.Collections; using System.Collections.Generic; /** * The while loop represents the game. * Each iteration represents a turn of the game * where you are given inputs (the heights of the mountains) * and w..

유니티 No Sprite Editor Window registered 해결 방법 [Unity]

3D 프로젝트에서 진행하다보면 이런 오류가 뜬다. 흔히 발견되는 오류로 2D에서 Multiple로 바꿨을 경우 발생한다 그래서 오류 해결방법은 간단하다. 저기 위에도 다운받아달라고 써있다. Window > Package Manager 가자. 내 프로젝트엔 없다. 그렇다면 유니티 안에는 들어있겠지? 있다 다운로드 받자 오 생겼다. 와 열렸다. ㅎㅎ 문제해결

Race Condition, 자원 경쟁, 경쟁상태 [Unity]

운영체제에서 세마포어, 뮤텍스... 등으로 많이 배운 Race Condition이다. 그렇게 Low하게 가지는 않을 것이고.. 유니티 내에서 조작해보자 맨 밑에 요약있음 우리는 유니티에서 값을 Initilaizing 후 사용한다. 하지만 Start()에 넣을 수도, Awake()에 넣을 수도 있다. 때문에 초기화 도중 만들어지기도 Object에 접근하는 상황이 발생해서 맨날 일어나는게 NullReferenceException Error다. 물론 Awake에 있는 것을 Start로 보낼 수 있으나.. 다른 방법도 존재한다는 것을 알아두자 스크립트 또한 우리가 실행순서를 정할 수 있다. 유니티 메뉴바에서 Edit -> Project Settings에 들어가서 아래와 같이 찾아볼 수 있다. 요약 1. Even..

Enumeration, 열거,나열 [Unity]

바로 본론으로 들어가자. Enums은 보통 클래스를 정의할 때 클래스의 property 값을 정할 때 사용될 수 있다. 변수가 적절한 값을 갖게할 수 있고 숫자를 문자열로 나타낼 수 있다. public enum ePetType{ none, dog, cat, bird, fish, other } 이와 같이 그냥 나열하면 된다. 대부분 클래스 밖에서 정의된다. ** enum은 따로 선언되지 않으면 순서대로 값을 가진다. none = 0, dog = 1 ... 이런 식으로 public enum eLifeStage{ baby, teen, adult, senior, deceased } 이제 클래스에서 사용해볼까 물론 사용할 때 enum's type으로 사용하면 된다. 아래의 ePetType처럼 자료형을 저렇게 쓴다..

Static Method, 정적 메서드 선언 [Unity]

바로 설명 들어가자 정적 메서드는 우리가 일반적으로 사용하는 인스턴스(Instance) 메서드와는 다르게 클래스로부터 객체를 생성하는 방법으로 호출하는 것이 아니다. 직접 .으로 호출한다. ex) Mathf.Sin(....) ++ 우리가 클래스로 객체의 이름을 자유롭게 바꾸는 것과 다르게 얘는 클래스니까 바꿀 수 없다고 보면 된다. ** 메서드 내부에서는 클래스의 인스턴스 객체 멤버를 참조해서는 안된다. static인 변수나 전역(global)로 선언된 변수들만 사용이 가능하다. 보통 종속적이지 않게 구현하려고 쓰는 모양이다. 가독성을 높이기 위해 namespace와 class를 묶어서 사용하기 위해 쓰기도 한다고 한다. Mathf. 같은 메서드들이 그런 용도로 쓰이고 있다.

static과 static public 의 차이, 정적 변 [Unity]

조금 궁금한 주제였다. 근데 알아볼 기회가 생겨서 바로 알아봤다. 우선 우리는 Static은 정적선언이고 Stack 영역에 저장되어 프로그램이 내려가기 전까지 계속 있을 것이란 것을 알고 있다. 그렇다면 어차피 정적인데 아무데서나 public을 붙이나 마나 불러올 수 있는 것 아니냐??? 라는 의문이 든다. 사실 그렇지 않다. 구분하는 이유가 있었다. 접근제한자를 설정하지 않으면 자동으로 protected로 암묵적으로 선언된다. 즉, 자신을 포함한 Children만 사용이 가능해진다. static으로만 선언하면 다른 클래스에서는 불러올 수 없는 것이 된다는 것이다. 이것이 static 과 static public의 차이다. 아래 글도 참고하자. [Unity, 유니티/Basic, 기본] - Static M..

Unity에서 들이면 좋은 습관 [ Unity]

물론 모두애게 좋은 점은 아니고.. 내가 생각했고 다른 사람들도 동의하는 사람이 있어서 소개해보려고 한다. 거창한 것은 절대 아니다. 아주 기본적인 것이다. 물론 익숙해진 사람은 상관이 없겠지만 Tracking down를 잘하는 사람이면 더더욱 상관없다. 하지만 그런 사람들도.. 많은 디버깅을 하면서 익숙해진 것이다. 처음부터 잘하기는 어렵다 더군다나 게임에선 특히 어렵다. 플레이어들 중에 항상 버그를 찾아내는 사람들이 있기에 ㅎ 중요한 습관은 Debug.log(" ")의 사용이다. 말이 디버그라고 써있듯 디버깅에 아주 좋은 습관이다. 해당 기능을 입력하여 로그를 띄운다. 나처럼"1" 처럼 대충써놓으면 나중에 뭐가 1인지 모른다. jump() 를 실행하면 Debug.log(" object jump ");..

카메라 크기에 맞춰서 경계 설정하기, Boundary [Unity]

나는 슈팅게임을 하는데 필요했고 뭐 다른 이유로도 화면 밖의 것들을 지우고 싶을 때가 많을텐데 플레이어가 보는 카메라는 항상 존재하니까 그 크기에 맞춰서 짠다면 괜찮지 않을까? 이 스크립트를 어디에다도 쓸 수 있지 않을까??? 알아보자 **해당 카메라는 Orthogonal이어야 적용되도록 만들었다. 나는 이렇게 경계를 설정하려고 한다. 1. 카메라의 크기를 구한다. 2. 해당 오브젝트의 위치를 경계와 비교한다. 3. 경계에서 벗어나지 못하게 제약을 둔다. 변수들, variables [Header("Set in Inspector")] public float radius = 1f; public bool keepOnScreen = true; // this allow object to go through bou..

728x90
반응형