시작!
ㅋㅋ
오늘은 투사체를 추가해서
루비와 투사체의 충돌로 인한 오류를 레이어로 분리해서 빼내는 걸 해봤고
투사체의 사거리와
4.Instantiate의 정의
Instantiate는 아직 다루지 않은 Unity 함수입니다. Instantiate는 첫 파라미터로 오브젝트를 취하고 두 번째 파라미터 위치에 그 복사본을 생성합니다. 세 번째 파라미터는 회전값입니다.
Instantiate를 단계별로 살펴보도록 하겠습니다.
1. 복사할 오브젝트는 프리팹으로, Rigidbody 위치에 배치(루비의 발이 아니라 손 근처에 오도록 약간 위로 띄움)하고 Quaternion.identity의 회전값을 줍니다.
쿼터니언(Quaternions)은 회전을 표현하는 수학 연산자입니다. 하지만 여기서는 Quaternion.identity가 "회전 없음"이라는 의미라는 것만 기억하시면 됩니다.
2. 그 다음 새 오브젝트에서 Projectile 스크립트를 얻어서 바로 전에 작성한 Launch 함수를 호출합니다. 호출 시 방향은 캐릭터가 바라보는 방향, 힘값은 300으로 설정합니다.
힘값은 뉴튼 단위로 표현되므로 매우 높게 설정합니다. 이 값은 게임에 적합한 정도지만 힘이라는 개념을 수동으로 설정해보고 싶다면 public float 변수를 하나 마련해 힘으로 사용해도 됩니다.
또한 트리거가 애니메이터(작동 원리는 이전 튜토리얼 참조)에 설정된 것을 확인할 수 있습니다. 이렇게 하면 애니메이터가 투사 애니메이션을 재생하게 됩니다.
3. 마지막 부분은 플레이어가 키를 누르는 것을 감지하기 위한 Launch를 호출하는 것입니다.
RubyController 스크립트에서 Update 함수 마지막 행에 다음을 추가합니다.
이거를 배워봤는데,
마지막에
step 10에
10.선택 사항: 수리한 로봇 애니메이션 연출
게임에 기능을 추가하거나 투사물과 관련된 게 아니므로 이 단계는 선택 사항이지만 게임 연출을 풍요롭게 할 수 있는 작업입니다.
1. RobotFixed라는 새로운 적 애니메이션 클립을 생성합니다. 이때 MrClockworkFixed 프레임 1, 2, 3, 4를 사용합니다. Sample을 잊지 말고 4로 설정합니다.
2. Enemy Animator에서 실행 중인 Blend Tree와 새 애니메이션 간 전환을 생성합니다. Has Exit Time을 비활성화합니다. 한 번 수리된 로봇은 결과가 고정되므로 반대 전환은 필요 없습니다.
3. Fixed로 트리거 유형 파라미터를 생성하고 해당 전환의 조건으로 설정합니다.
확장할 이미지 선택
이제 Enemy 스크립트에서 Fix 함수에 다음 행을 추가합니다.
animator.SetTrigger("Fixed");
플레이 모드를 켜고 로봇에게 톱니를 투사하여 수리해봅니다. 이제 수리된 로봇이 행복하게 춤을 춥니다.
이렇게 되어있는데
일단 Walking 을 뭐 어떻게 설정해야 robotfix 가 실행이 되는지 모르겠다
일단 로봇이 쿠키를 맞으면 움직임은 멈추는데
춤추는 동작으로 넘어가질 않는다...
이건 내일 해봐야겠다.
오늘의 유니티 끝!
- 0221
12.요약
이번 튜토리얼에서는 레이어 사용 방법, 리지드바디에 힘을 가하는 방법과 함께 물리 시스템을 좀 더 심도 있게 다루어 물리 시스템으로 오브젝트를 이동해 보았습니다.
다음 튜토리얼에서는 카메라 이동으로 루비를 따라 움직이며 월드를 좀 더 넓게 활용해보도록 하겠습니다.
ㄹㅇ 끝!
'1인개발 메이킹로그 > [Web game] 쿠크세이튼3마리오' 카테고리의 다른 글
[4주-16일차] 루비 프로젝트 chapter11 비주얼 효과 구현 - 파티클 (0) | 2022.02.22 |
---|---|
[3주-15일차] 루비 프로젝트 chapter10 카메라 - 시네머신 (0) | 2022.02.21 |
[3주-13일차] 루비 프로젝트 chapter8 스프라이트 애니메이션 (0) | 2022.02.15 |
[3주-12일차] 루비 프로젝트 chapter8 스프라이트 애니메이션 (0) | 2022.02.08 |
[3주-11일차] 루비 프로젝트 chapter7 월드 인터랙션 - 데미지 영역과 적 캐릭터 (0) | 2022.02.07 |