일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 스파르타내일배움캠프
- 유니티
- delegate
- Generic
- script
- BGM
- 인터페이스
- 장애물달리기
- InputManager
- unity
- 배열
- 직렬화
- inputsystem
- ObjectPool
- 자료구조
- 스택
- 코루틴
- 프로그래머스
- UI
- soundmanager
- 메서드
- 비선형자료구조
- skybox
- FSM
- c#
- 유한상태머신
- 람다식
- 효과음
- LINQ
- invokec#events
- Today
- Total
목록스파르타내일배움캠프 (60)
Unity 개발일지

UI로 원하는 캐릭터 선택창을 만들자.Image와 Button UI로 간단하게 만들었다. OpenCharacterUIBtn 스크립트에는 말그대로 창이 열리고 닫히는 기능만 작성했다.SelectCharacterBtn 오브젝트와 SelectBtn 오브젝트에 각각 컴포넌트로 등록하고 OnClick을 설정하였다. SelecCharacterBtn도 간단히 Player의 자식 오브젝트에 SpriteRenderer를 넣어 구분하고SetActive를 이용해 켜고 꺼주었다. 이 과정에서 한가지 문제가 발생한다.바로 Animator가 처음 생성한 플레이어에만 적용되고 나머지 플레이어에는 적용되지 않는것! 그래서 PlayerAnimationConvert라는 스크립트를 만들어 Player1과 Player2의 컴포넌트로..

우선 UI를 이용해 Image와 Button UI로 LoginScene을 하나 만들어주었다.참고로 UI는 Canvas에서 위에있는 쪽이 먼저 생성되어 아래쪽에 깔리게된다.플레이어 이름을 입력하는 칸은 InputField(TMP)이다. InputField를 만들게 되면 InputField와 자식오브젝트로 TextArea에 Placeholder, Text가 생성된다.InputField에는 OnEndEdit(String)부분만 나중에 Script작성 후 손봐줄 예정이고,Placeholder는 아무것도 입력하지 않았을 시 Default Message를 입력할 수 있다.Text는 플레이어의 입력을 받아 출력해준다. Button을 이용할 것이기 때문에 SrartBtn 스크립트를 만들어주었고,TMP_InputFi..

유니티로 플레이어의 이동을 구현하는 방법은 다양하다.오늘은 그중에서도 New InputManager로 구현을 해보았다. New InputManager란 무엇인가?우선 기존의 InputManager (구 InputManager)로 플레이어의 이동을 구현해보았다.[SerializeField] 는 private로 선언된 변수를 Inspector창에서 접근할 수 있게 해주는 함수이다.Inspector 창의 InputManager 스크립트에서 접근자가 private속성인 speed를 설정할 수 있다. 기존 Update문에서 GetComponent를 사용하여 Rigidbody2D에 접근을 하였는데 매 프레임마다 가져올 필요가 없이Start문에서 Rigidbody2D에서 접근하여 코드를 변경하였다. 매번 달라져야..

[초기 제시문] for문으로 배열을 돌면서 height 보다 큰 값의 개수를 구하는 문제이다.배열의 크기를 구할 때는 array.Length를 쓰고, if문으로 aswer의 값을 늘려 return 해주면 된다. [답안] [참고할 만한 답안]using문으로 System.Linq;를 선언하여 람다식을 이용하였다.array.Count로 answer에 바로 값을 대입하였고Count안에 람다식으로 x > height 로 바로 대입하였다. [초기 제시문]배열을 오름차순으로 나열 후 중앙값을 구하는 문제이다.array의 길이는 홀수이고, int형이므로 array.Length / 2 를 해주면 중간값을 구할 수 있다. [답안] [참고할 만한 답안]using문으로 Linq를 선언한 후 Orderby와 람다식을 이용하..

간단하게 프로그래머스 문제를 푼 것으로 하루를 마무리하려고 한다. [초기 제시문]우선 answer을 배열로 선언하였고, new int 안에 numbers.Length로 answer 배열을 초기화해주면 되겠다.그리고 for문으로 i 가 numbers.Length 까지 numbers[i]의 값에 2배를 곱해서 answer[i]에 넣어주면 된다. [답안] [초기 제시문]for문으로 array의 Length까지 array[i]와 n이 같다면 answer에 1씩 더해주면 되는 문제이다. [답안]

진행하기 전에 데이터 직렬화(Serialization), 역직렬화(Deserialization)는 무엇이고 왜 필요한지 알아보자. 직렬화 ( Serialization ) 란?메모리를 디스크에 저장하거나 네트워크 통신에 사용하기 위한 형식으로 변환하는 것 역직렬화 ( Deserialization ) 란?디스크에 저장한 데이터를 읽거나, 네트워크 통신으로 받은 데이터를 메모리에 쓸 수 있도록 다시 변환하는 것 직렬화는 왜 필요한가?메모리에 대해 이해하기 위해서는 힙 영역과 스택영역에 대한 기본적인 지식이 있어야한다. 1. 값 형식 데이터(Value Type) 우리가 흔히 선언해서 사용하는 int, string, char 등 값 형식의 데이터들은 스택에 메모리가 쌓이고 직접 접근이 가능하다. 2. 참조 형식..

팀원들과 열심히 깃 컨벤션과 코드 컨벤션을 정하고 Read.me에 작성했는데 이게 웬걸?글자가 깨졋다...파일 - 다른 이름으로 READE.md 저장을 누른다. 저장 오른쪽의 화살표를 클릭한 후 인코딩하여 저장을 누른다. 유니코드(서명 있는 UTF-8) - 코드 페이지 65001 로 바꾼 후 확인을 누르면 더이상 파일이 깨지지 않는다.물론 이 방법으로 해주면 새로운 Read.me 파일을 바꿀 때 마다 인코딩을 해줘야 한다. 매번 인코딩을 하지 않는 방법에 대해 찾아봤지만 아직 확실한 답변은 받지 못했고 한 사이트에서 이러한 답변을 봤다. 해보고 되면 나중에 또 포스팅 하도록 하겠다. 출처 VS.NET IDE: 74. Visual Studio의 '새 파일'을 UTF-8 인코딩으로 지정하는 방법VS.NE..

TextRpg를 만드는 중 플레이어의 직업을 영문명이 아닌 한글로 정의할 수 없을까에 대해 고민하던 중"키를 입력하면 값을 가져올 수 있는 방법이 있으면 어떨까?" 라는 조언을 듣고 찾다가Dictionary를 사용해보자는 결론에 도달했다.DictionaryDictionary는 Collection(자료를 모아 놓은 데이터 구조)의 일종으로 키와 값으로 구성된 데이터를 저장한다.Dictionary는 중복된 키를 가질 수 없으며, 키와 값의 쌍을 이루어 데이터를 저장한다.Divtionary를 사용하기 위해서는 using System.Colloection.Generic;이 상단에 선언되어있어야한다. List와의 차이점List는 인덱스 번호를 사용하여 요소의 값을 얻는다. 그에 반해 Dictionary는 Key값..