반갑다.
엊그제 팀프로젝트 끝나고... 약간의 이슈로... TIL 못적었다...ㄱ-
오늘차 TIL에 적는건,,에반가,,,? 아니 전혀 아니야 그냥 적어야지...
=======================================================
개인과제 - 강의
이번 강의는 Unity3D게임 구현하기.
근데 나는 분명... 하라는 대로 했는데...왜...
여기서는 플레이어가 멀쩡히 보이는데
게임 실행만 하면 땅에 박혀서 나올 생각을 안하신다
아오!!!!!!!!왜이러냐고!!!!!!!!!!
.
.
.
정답은 내가 강의를 제대로 안봐서다.
강의를 다시 돌려보니 CameraContainer의 포지션Y값을 1.7로 맞추라고 했다.
이러니 플레이어가 바닥에 박혀있을 수밖에 없지ㅋㅋ 높여주자
드디어 플레이어가 지면을 밟을 수 있게 되었다. 하.......
그리고 오늘 강의중 굉장히.. 뭔가 뭔가인? 인상적인? 설명, 낮과 밤 구현 스크립트인 DayNightcycle에서
예를들어 지구를 4등분 하면, 절반은 낮이고 절반은 밤이므로 noon은 지구의 0.25에 오는 지점.
해와 달은 반대로 공전하므로 해가 지고 달이 noon에 왔을 때는 0.75. 그 상태를 90도에 곱한다.
( 해 기준 0도 = 0, 90도= 0.25, 180도= 0.5 , 270도=0.75 ... )
그렇게 해서 360도를 기준으로 해가 뜨는 위치와 달이 뜨는 위치를 잡아준다.
... 아직 이해가 추상적으로밖에 되지 않았지만 얼추 알아들었다. 공부 다시.
그래프 만들다가 눈 빠지는줄
델타타임과 코루틴 (다시!!!!!!!!!공부해!!!!!!!!!!)
Time.deltaTime : 사용자의 컴퓨터 성능에 따라 변하는 값.
이것도 추상적으로 개념을 이해해서 다시... 공부 해야함...
코루틴 : 특정 코드가 반복적으로 실행되기 위해 Update함수 대신 쓰는 것!!!! (Update문에 전부 때려박을 수 없으니까..)
코루틴 사용법
1. IEnumerator 반환형으로 시작해야함
2. yield return 반드시 함수 내부에 존재.
ex)
IEnumerator 함수이름()
{
yield return // + 조건
// 함수 내용
}
yield return 의 종류
1. yield return null; : 다음 프레임에 실행 됨.
yield return new WaitForSeconds( float ); : 매개변수로 입력한 숫자에 해당하는 초만 큼 기다렸다가 실행됨. // 유니티상에서의 시간을 기준으로 체크
yield return new WaitForSecondsRealtime( flaot ); : 매개변수로 입력한 숫자에 해당하는 초만큼 기다렸다가 실행됨. // 현실시간을 기준으로 체크
그외 : yield return + new WaitForFixedUpdate / WaitForEndOfFrame 등...
yield break; // 코루틴 종료
TimeScale 영향 받는 것 >>> 2번, (3번은 영향 안받음)
코루틴 내부에 for문이나 while문을 사용해준다면 Update문은 따로 동작하면서도 마치 업데이트문처럼 매 프레임마다 반복되게 할 수 있다.
만약, 업데이트문에 이런 반복문을 쓰게 되면 해당 반복이 끝날 때까지, 반복문 아래에 있는 코드들은 전혀 실행이 되지 않는다.
그러나 코루틴에서 반복문을 사용하면 Update와는 별도로 동작하기 때문에 모든 스크립트가 정상적으로 동작하게 된다.
이렇게까지 봐도 추상적으로밖에 이해가 되지 않는다... 계속 써봐야 늘겠지...휴...
저번 팀과제 후기
하하 어제 썼어야 했는데 오늘 씁니다!!
사실은... 저번 개인과제를 엄청나게 말아먹고 자신감이 0이 되다못해 지하를 뚫고 나락을 간 시점에서 팀과제가 시작되었다. 사실은 그냥 강의만 열심히 들어도 할 수 있었던 과제였는데도 현생에서 악운이 여럿이 겹쳐서 도저히 강의를 들을 수 있는 멘탈이 아니었다.
때문에 팀 과제에서 파트 나누기 중에서도 그나마 제일 해볼만해 보이는 파트가 사운드였지만, 아주 크나큰 오산이었다. 사운드 파트는 강의를 찾아보거나 구글링을 해도 해결할 수 없는 부분이 정말 많았다. 이와중에 팀원과의 깃허브 병합과정에서 충돌도 엄청나게 일어나 멘탈이 정말 산산조각이 났다.
그런 와중에도 팀원들은 병합충돌문제의 해결책들을 계속 가져와 해결을 했고, 팀원들 각각이 구현과정에서 문제가 발생해도 어떻게든 해결을 하는 모습을 보여주었는데, 이렇게 모두가 열심히 하는데 나 혼자 멘탈이 나갔다고해서 아무것도 하지 않을 순 없었다. 강의를 보고 해결이 안되면 구글링을 해보고, 그래도 해결이 안되면 튜터님께 찾아가 질문을 하고...
이번 팀과제에서는 어떤 새로운 코드를 배웠다가 중점이라기보다는 팀원들의 모습에 동기부여를 얻고 자신감을 얻은게 더 큰 것 같다. 팀프로젝트를 왜 자꾸 시키나 했더니 이런 것도 배울점이 있으니 시킨다는 것을 확실히 알았고... 다음 프로젝트에서는 더 열심히 해야겠다.