본문 바로가기

Unity/Unity3D_Quater

Unity3D_Quater - 몬스터공경 경고라인, 3쿠션 공격 만들기

1.돌격형 몬스터인 EnemyB의 돌격 경고라인 만들기

 - Trail Renderer 컴포넌트를 가질 빈 오브젝트를 생성하고 꼬리가 생성될 시간인 Time과 꼬리의 색상을 조절해주고

 - Aligment를 기존 View에서 Transform Z로 해주어야 카메라 시선에 따라 꼬리가 회전하는 현상을 막을 수 있다

 - Transform Z 방향으로 꼬리가 생성되기 때문에 해당 오브젝트의 z축이 forward가 되도록 회전시켜주고

 - 이 후 해당 오브젝트를 생성 후 transform.forward 방향으로 날리기 위해서 빈 부모 오브젝트를 하나 더 만들어서 그 자식오브젝트로 넣고 프리팹화 시킨다

 

 

 - 기존 Enemy 스크립트의 Attack()함수안에서 Type.B의 공격에 대한 코드에 위에서 만든 트레일랜더러 프리팹을 생성하고 앞으로 rigid.AddForce() 날려주는 코드를 추가한다(이 후 Destroy되도록 해줌)

 

 

 

2. 쿠션공격 몬스터인 EnemyD의 경고라인 만들기

- Line Renderer 컴포넌트를 가질 빈오브젝트를 생성하고 1의 Trail Renderer와 같이 Alignment를 기존 View에서 Transform Z로 바꿔준 후 X축기준 90도 회전시켜준다

- 빈 부모 오브젝트의 자식으로 넣어준다 이 후 프리팹화 시킨다

 

- 부모오브젝트로 생성한 EnemyDdangerMark 오브젝트에 이 후 만들어줄 EnemyDdangerMark스크립트를 컴포넌트에추가해주고 위에서 만든 라인렌더러 오브젝트를 Line Renderer에 드래그 앤 드랍한다

 

 - Enemy 스크립트에서 Attack()안에 있는 Type.D의 공격방식 코드에 해당 몬스터가 공격시에 위에서 만든 라인렌더러가 들어간 부모오브젝트 프리팹을 생성하도록 Instantiate해준다

 

 - 생성된 라인렌더러 오브젝트는 아래와 같은 스크립트를 가지고 있다

 - EnemyD과 공격을 함과 동시에 Line Renderer컴포넌트가 들어있는 오브젝트를 생성하고

 해당 오브젝트가 RayCast와 Vector3.Reflect를 이용하여 꼭지점을 만들고 해당 꼭지점들을 이어서 Line Renderer가 생성되도록 하는 원리이다 

 

 

 

3. 쿠션공격 몬스터인 EnemyD의 발사체 만들기

 - 파티클 시스템을을 가진 일반 원형총알 오브젝트를 프리팹화 해준다, bullet 스크립트를 추가해주고 총알 Type을 

   EnemyBulletMissile3Cu로 지정해준다

 

- 기존 Bullet 스크립트에서 위에서 만든 미사일 타입의 이름일 경우 먼저 생성한 총알의 forward방향으로 rigidbody.velocity를 주어 날려주고

 

- OnCollistionEnter 이벤트 함수를 이용하고, 충돌지점의 법선인 contacts[0].normal을 이용하여 Vector3.Reflect를 이용하여 새롭게 속력을 줄 방향을 새로 지정해주는 방식으로 bounceCnt만큼 총알을 발사해준다

 

 

완)