* UI 생성.
(OverlayCansvas, TopCanvas, BottomCanvas, MenuCanvas, PasuedMenu, Upgrade&Sell UI 등)
- Vertical. Horizontal Layout Group
- Canvas Group 으로 투명도(a값) 등 애니메이션 생성 가능.
- Canvas가 여러 개 있어서 오브젝트 클릭이 안될 때는, 방해되는 Canvas의 Graphic Raycast를 없애주면 된다.
1) 체력 바 생성.
- UI의 Image type을 fill로 바꿔주어 fillAmount를 통하여 체력바 감소 구현.
- Enemy Prefab에 적용시켜 줌.
2) UI 전환 시, FadeIn/Out 효과 구현.
- Canvas에 검정색의 Image를 생성.
- SceneFader라는 스크립트 생성하여 추가.
- Animation Curve 컴포넌트 이용.
Curve.Evaluate() 함수 이용.
- 코루틴 사용.
(For문을 통하여 시간 t 변수와 time.deltatime을 이용하여 1초동안 검정색 Image의 투명도를 조절함.)
- 각 장면전환하는 로직에 SceneFader 스크립트의 FadeTo() 실행.
* 메인 메뉴 & 일시 정지 & 게임 오버 UI 생성 및 Scene 전환
- SceneManager.LoadScene(SceneIndex or SceneName)
- SceneManager.GetActiveScene().name
-> 현재 Scene의 이름을 가져옴.
SceneManager.GetActiveScene().buildIndex
-> 현재 Scene의 buildIndex를 가져옴.
★ retry 등, 현재 Scene을 그대로 가져오는 경우에는 아래와 같이 실행 가능.
- SceneManager.LoadScene(SceneManager.GetActiveScene().name)
* 레이저 공격 Effect 구현.
- 다른 포탑들과는 다르게 총알 오브젝트를 사용하지 않고, 파티클 이펙트만을 사용함.
- 파티클 이펙트 중, Line Renderer 컴포넌트를 이용.
- 포탑(Turret) 스크립트에서 Laser() 함수 생성.
bool값 변수를 생성하여 레이저를 사용하는 포탑의 경우, 파티클을 Stop() 시켜줌.
(lineRender, laserLight 모두 enable=false로 해줌.)
- Enmey 스크립트의 TakeDamage(float amount) 함수로 레이저에 대한 데미지를 실행시킴.
- 파티클 이펙트를 이용하여 레이저 맞았을 때 피격효과도 생성.
* 레이저 피격 시, 슬로우 효과 발생 구현.
- 기존 Enemy 스크립트를 2개로 나눔. (Enemy, EnemyMovement)
- Enemy의 속도 변수도 2개로 나누어줌. (float startSpeed, float speed)
startspeed는 Enemy의 고유 속도, speed는 게임 중에 변동하는 실제 속도라고 생각하면 됨.
start 단계에서 Enemy 속도를 다시 startspeed(고유속도)로 만들어 주어, Slow 효과가 중복으로 무한하게 적용되지 않도록 함.
★ project setting -> Script Executions Order에서 스크립트 별 실행되는 시간을 조절할 수 있는 것 같음.
->기본적으로, 다른 스크립트의 Awake, OnEnable, Update 함수는 스크립트가 로딩되는(임의의) 순서로 호출됩니다. 그런데 이 순서를 Script Execution Order 설정에서 수정할 수 있습니다
* 업그레이드 & 타워 판매 로직
- Node, 타워가 생성되는 위치에 대한 스크립트 생성.
- Node, buildmanager의 함수들을 가져와서 실행시킴.
(기본 메카니즘은 타워 설치와 동일.)
* 추가 적 생성 로직
- 나는 첫 몬스터가 1마리, 2마리...... 10마리까지 나온 후,
두 번째 몬스터가 다시 1마리, 2마리 .... 10마리 까지 나오는 방식으로 설정.
- 기존에 몬스터 스폰 로직은 게임매니저에서 작성.
* 유투버 brackys 참고.
'개발자가 되어보자..공부공부 > 개발 일지' 카테고리의 다른 글
C# 유니티 공부 29 - 2D Undead Suvivor 예제 진행. (Static 변수 설정, 무한맵 이동) (0) | 2023.01.10 |
---|---|
3D 랜덤 디펜스 개발일지 0. (0) | 2023.01.07 |
C# 유니티 공부 27 - 디펜스 게임(Serializable, 스플래쉬 공격, 상점 포탑 구매 등) (0) | 2022.12.29 |
C# 유니티 공부 26 - 디펜스 게임2 (Singleton Pattern 싱글톤 패턴, onMouseEnter/Exit/Down, Screen width/height) (0) | 2022.12.27 |
C# 유니티 공부 25 - 디펜스 게임. (Snapping, 적 무한순환이동, 자동 적 생성, 자동 오브젝트 회전, 자동 공격) (0) | 2022.12.27 |
댓글