12월, 2018의 게시물 표시

[Unity2018.3.0f2] 코루틴 - 유니티에서 While문 멈추지 않고 돌리기.

이미지
별거 아닌 얘기긴 한데, 한창 유니티 배우던 때, While문으로 내부에서 돌리고 싶은데 쓰면 거의 반드시 멈추기 때문에 골치아팠던 때가 있습니다. Update에서 주로 돌렸는데, 업데이트에서 while문을 돌리게 되면, 대충 잡아서 몇만회 이상 돌아가기 시작하면 Update에서 뻗어버리는 문제가 있었죠. 그 때 가장 흔하게 쓰던 방법으로 Coroutine 시스템이 있습니다. While은 코드의 컨트롤을 넘기지 않고 자기 자신이 끝날때까지 모든 일을 중단하고 잡고 있기 때문에 코드 중간에 넣어서 사용하기 시작하면 그 일을 끝날때까지 모든 코드의 일이 멈춰버리기 때문에, 부하가 심하게 걸리는 작업에 들어가버리면 가끔 멈춰버리기도 합니다. 1 2 3 4 5 6 7 void  Start()  // Unity Stop! {      while ( true )     {         Debug.Log( "Hello, World!" );     } } Colored by Color Scripter cs 그럴때 멈추지 않고 사용하기 위해서 특정 행위가 종료된 후 컨트롤을 다시 넘겨주고, 다시 돌아왔을때 해당 작업을 진행할 수 있도록 하는 내용입니다. 다음은 0.2초마다 1씩 더한 내용을 출력하는 코드입니다. 1 2 3 4 5 6 7 8 9 10 11 12 13      void  Start()     {         StartCoroutine(IncreaseCoroutine());     }         IEnumerator IncreaseCoroutine()     {          while ( true )         {             increaseInt + + ;             Debug.Log(increaseInt);

[Unreal 4.20] 애니메이션 블루프린트에 캐릭터 가져오기.

이미지
  블루프린트 애니메이션은 메인 애님그래프에 State Machine 을 이용해서 상태에 따라 다른 애니메이션을 재생해 주는 등 여러가지 기능을 제공합니다만 , 으레 그렇듯이 구조가 익숙하지 않은 사람에겐 이 상태를 업데이트할 부분을 찾는게 곤란해지기도 합니다 .( 이 글을 작성하기 바로 직전의 저처럼요 .) 그런고로 , 간단하게 애니메이션을 데려와서 상태별로 애니메이션이 변경하는 소스를 일부 발췌하여 올립니다 . 애니메이션 블루프린트 탭을 가면 볼 수 있는 애님 그래프 구조 . 스테이트 머신은 스테이트 머신 새로 추가로 넣을 수 있습니다 . 해당 스테이트 머신을 더블 클릭해서 들어가면    이런 황량한 핀이 나오는데 ,   스테이트 추가로 상태를 추가할 수 있습니다 . 만들어진 스테이트 Entry 를 해당 스테이트를 연결해 시작점을 만들어주고 ,    다른 스테이트를 추가해 연결해줌으로서 스테이트간 이동을 만들어 줄 수 있게 됩니다 .   테스트로 구성한 스테이트 . 해당 테스트 스테이트들은 각자의 스테이트가 애니메이션을 가지고 있을 수 있으며 , 조금 복잡한 몽타주도 가질 수 있는걸로 알지만 , 저는 기본 애니메이션만 넣었습니다 . 해당 테스트 스테이트들을 잇는 선 옆에 서로의 상태를 변경하는 bool 을 구하는 Can Enter Transition 이 있는데 , 해당 아이콘을 더블 클릭하면 ,    상태를 전환할 수 있는 내용을 그래프로 만들 수 있습니다 . 하지만 , 정작 Character 를 안가져 왔네요 .   간단히 사용할 CharacterTest 입니다 . 컨트롤러로 Possess 했을때 bPress 변수가 바뀌도록 세팅해뒀습니다 .   사용할 스켈레톤 정보와 애니메이션 클래스를 가져왔습니다 .