일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- InputManager
- 인터페이스
- Generic
- 직렬화
- invokec#events
- ObjectPool
- 배열
- script
- LINQ
- 자료구조
- FSM
- 효과음
- BGM
- delegate
- 스택
- 프로그래머스
- soundmanager
- 비선형자료구조
- c#
- 코루틴
- 람다식
- 유한상태머신
- unity
- inputsystem
- 메서드
- skybox
- 장애물달리기
- 스파르타내일배움캠프
- UI
- 유니티
- Today
- Total
목록Unity 개발 (41)
Unity 개발일지

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

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

1. UI Text 생성TimeTxt: 시간이 임박하면 타이머가 흔들리는 UI TextPlusTxt: 정답을 맞추면 +3.0초를 더해주는 UI Text / MinusTxt도 있으며 Prefab화 해주었다. 2. Script에서 코드작성 [1] 시계가 흔들리는 코드게임을 재시작하면 false상태가 되므로 isMove false를 Update보다는 Start나 Awake에 구현해준다.color를 바꿔주는 코드는 앞에서 공부했으므로 넘어가자 참고로 Color.red로 해도 동일하다. [2] 시간을 더하고 빼주는 에니메이션 기존 Hierachy창에 있는 오브젝트가 아닌 프리펩이 생성될때는 GameObject 변수를 새로 정의해준다. Instantiate( GameObject original, Vector3 po..

1. 게임종료 시 EndTxt를 활성화 시키기타임이 0보다 작아지면 endTxt의 체크박스를 체크하고 timeScale을 0으로 만든다 2. 시간이 10초보다 작아질 때 타이머가 붉게 변하고 타이머가 흔들리게 만들기Animator에 isMove를 설정했고 이를 스크립트에서 이용하기 위해 public Animator anim() 정의isMove를 10초 이하일때만 SetBool로 활성화 시켜준다.Update문의 과부하를 고려 Start문에 비활성화 코드를 작성해준다. 색깔 바꾸기변수이름.color = new Color( @ / 255f, @ / 255f, @ / 255f, @ / 255f ); 변주 timeTxt를 UI인 TXET로 선언해서 .color로 접근가능하다 * Button, Text, Trans..

1. Resources 폴더를 만든 후 Image 파일들을 이동 2. Script 에서 idx 정의, 초기화Resources.Load($"파일이름{idx}"); 위의 Script는 Card 스크립트에 작성한 함수이고, 아래는 Board Script에 적용한 모습

1. Hierarchy에 AudioManager 오브젝트 만들기 - Audio Source 컴포넌트, Audio Manager 스크립트 추가 2. AudioManager 스크립트 작성변수작성 audioSource = GetComponent();AudioSource로부터 Component를 가져올 수 있게 해주는 명령어써주지 않으면 음악이 재생되지 않는다. audioSource.clip = this.clip;재생 시 Unity Engine에서 넣어준 음악을 적용해준다. audioSource.Play();말그대로 음악을 재생해준다. 3. Scene 이동 시에도 듣던 음악을 이어서 재생시켜주기AudioManager를 싱글톤 시켜준다.if ( instance == null ) { instance = this..

1. 시간의 흐름을 조정Time.timeScale 프로퍼티 사용Time.timeScale 는 시간이 경과하는 크기를 나타내며 값을 수정하여 시간이 흐르는 속도(배율)을 조절할 수 있다. 2. 코드 작성시간이 30초가 지나거나 cardCount 가 0 이되면 timeScale이 0 이 되고 endTxt를 출력한다.재시작을 고려하여 Update 함수에 timeScale을 1로 설정하였다.Retry 버튼을 만들기 위하여 Script를 작성하였다. 3. Unity 엔진 내 적용EndTxt 텍스트에 Button 컴포넌트와 RetryButton 스크립으를 적용하고 On Click 시 RetryButton의 Retry 함수를 실행하도록 적용하였다. 4. 추가사항 * Time.timeScale = 0; 일때 Updat..

1. UI - Legacy - Text 오브젝트 생성 후 이름을 TimeTxt로 변경 2. Inpector 창에 설정값 입력 (예시) 3. 빈 오브젝트 GameManager 생성 후 스크립트 생성Time.deltaTime 프로퍼티 사용deltaTime에서 delta는 값의 차이를 의미한다.지난 프레임이 완료되는 데까지 걸린 시간의 차이를 의미하며 단위는 초.보통 30프레임 기준의 게임에서 한 프레임당 0.033정도가 60프레임 기준의 한 프레임당 0.016 정도면 적당하다.사용 이유?PC의 성능과는 무관하게 동등한 조건으로 설정하기 위해, 다른 플랫폼과 장치여도 각 프레임에 맞게 업테이트를 해줌으로 일관된 환경에서 게임을 플레이 할 수있다. 4. 코드작성 5. Unity 엔진 내 적용