강의/[Unity]방치형 게임 만들기

유니티 방치형 게임 만들기 - 3. 캐릭터 스탯 컨텐츠

개발의 피 2024. 8. 13. 21:51

https://www.inflearn.com/course/%EB%B0%A9%EC%B9%98%ED%98%95-%EA%B2%8C%EC%9E%84-%EB%A7%8C%EB%93%A4%EA%B8%B0/dashboard

 

유니티 방치형 게임 만들기 강의 | 코사트 - 인프런

코사트 | C# 및 게임 엔진 Unity(유니티)를 활용해 방치형 게임을 만드는 방법을 배웁니다., 유니티와 C#으로 따라 만드는 방치형 인디 게임 만들기! 수강 전 참고사항 녹음 환경의 문제로 음질이 고

www.inflearn.com

 

강의 : 유니티 방치형 게임 만들기

섹션 3. 캐릭터 스탯 컨텐츠 

1. 캐릭터 스탯창 UI 설계
2. 캐릭터 스탯창 기능구현
3. 캐릭터 스탯창 테스트 

 

1. 캐릭터 스탯창 UI 설계

- State 버튼 : 패널 켜기 

- 정보 : 죽을 때 -> 공격속도 절반 안내 문구

 

 

2. 캐릭터 스탯창 기능구현

* 스탯 추가

- HP

- def 

플레이어 데미지 받을 때,

// 공격력이 들어올 때, 방어력으로 상쇄 
HP -= att - (def / 1000); // 방어력이 너무 높아지면, 오히려 체력이 차버리기 때문에 -> / 1000

 

- dex : 민첩성 -> 공격속도 영향 (1000일 때, 1 될 수 있도록)

Update - 공격 텀 체크 

// if (Curtime + 0.5f < Time.time) 
if (Curtime + (2 - (dex * 0.001f)) < Time.time) // 덱스 값이 오르면, 공격 속도 빠르게 (1000까지 올려야 1초 깎임)

애니메이션 속도 적용 (1000 : 1의 속도, 1000보다 커지면 : 빨라짐, 피가 다 닳면 : 절반) 

animator.speed = dex * 0.001f;

// 죽었을 때 (Damage 메소드)
dex = 500;

게임 스피드에 적용 

GameManager.instance.gameSpeed = GameManager.instance.gameSpeed + (dex * 0.001f);

- cri : 치명타  

                int criRan = Random.Range(1, 1000); 

                if (criRan < (cri * 0.001f)) // 1000이 되면, 1로 됨 
                {
                    // 크리티컬 만의 데미지 값에 함수를 줌
                    Mon.GetComponent<Monster>().CriDamage(att * criRan); // 공격력 : 크리티컬을 곱한 값 랜덤하게 나온 값을 곱한 값으로 데미지 많이줄 수 있게 
                }

크리티컬로 추가해준 것 : 몬스터 데미지받는 메소드, 데미지 텍스트 생성 메소드, 크리티컬 데미지 프리팹 (색상 다르게)

 


3. 캐릭터 스탯창 테스트 

- 공격력 올리기 

- 체력 올리기

- 방어력 올리기

- 민첩성 올리기

- 치명타확률 올리기