본문 바로가기
[ CODING STUDY ]/》유니티 실습

유니티 - [Destroy, ParticleSystem, GetComponentInChildren]

by MRG 2022. 3. 27.
728x90
반응형

▣ 안녕하세요. 이번장에서는 

Destroy, ParticleSystem, GetComponentInChildren를 공부해보도록 하겠습니다.

 

▣ 우선 3D 프로젝트를 생성해주시고, Player, Plane 오브젝트를 생성해주세요.

그리고 Player오브젝트에는 스크립트, 콜라이더, 리지드 바디를 컴포넌트로 추가해주세요.

그런 다음에 유니티 에셋에서 무료 파티클을 다운받으세요.

 

https://assetstore.unity.com/packages/essentials/asset-packs/unity-particle-pack-5-x-73777

 

Unity Particle Pack 5.x | 에셋팩 | Unity Asset Store

Get the Unity Particle Pack 5.x package from Unity Technologies and speed up your game development process. Find this & other 에셋팩 options on the Unity Asset Store.

assetstore.unity.com

 

▣ 저는 간단하게 이 파티클을 사용했습니다. 

 

 

 

 

▣ 그럼 유니티 버전에 따라 오류가 나올 수 있는데 이렇게 

패키지에서 Post Processing을 업데이트해주시고 해결됩니다. 

▣ 그런 다음에 파티클을 한 개 선택하셔서 씬 화면서 넣어주시고 

포지션 값을 모두 0,0,0으로 한 상태에서 플레이어 오브젝트 자식으로 넣어주세요.

그런 다음에 프리 팹을 열어 모든 오트 젝트를 Shift를 눌러 선택한 다음에

Looping, Play On Awake를 해제해주세요.

Looping은 무한반복, Play On Awake를 활성화되는 순간 바로 한번 자동으로 재생되는 걸 의미합니다. 

 

 

▣ 그런 다음에 Player스크립트에서 코드를 작성해주세요.

ParticleSystem시스템을 저장할 변수를 지정해주시고,

Start() 함수에서 GetComponentInChildren로 자식에 파티클 시스템을 변수에 넣습니다. 

그런 다음에 OnCollsionEnter() 함수로 플레이어한테 무언가 닿이면 

파티클 효과가 재생되게 코드를 작성해주시고,

Destroy() 함수에서 파티클을 삭제해주세요.

첫 매개변수는 삭제할 오브젝트, 두 번째는 시간을 입력해주시면 됩니다.

하지만 우리는 파티클이 끝나면 삭제할 코드가 필요합니다.

Time.deltaTime이나 코 루틴을 사용해도 되지만,

파이 틀 시스템. duration을 사용하면 파티클 진행 시간을 나타냅니다. 

그렇게 매개 변숫값에 넣고 저장을 한 다음에

 

▣ 재생을 하면 플레이어가 닿으면 파티클이 재생되고 4초 뒤에 자식 오브젝트에 파티클이 삭제되는 걸 확인할 수 있습니다.

728x90
반응형

댓글