<오늘의 과제> 슛팅 시스템

1) Shooting - WeaponController
무기 슛 타입
: Manual 수동 : 한발씩 쏘는것
: Autimatic 자동 : 누르고 있으면 지정된 시간(0.5초) 간격 자동으로 쏘는것
: Charge 충전 : 누르고 있으면 충전이 되고 방아쇠를 놓으면 발사되는것,  100% 충전이 되면 자동 발사된다
: Sniper
: 버튼 누르는 상태에 따라 슛 타입에 따라 슛 - HandleShootInputs()
: 슛 구현 TryShoot() : Debug.Log("Shoot!!!!!!");
: 슛 쏘는 간격은 0.5초
: 슛 연출 HandleShoot() : 총구에서  Muzzle 이펙트, 발사 사운드

2) PlayerInputHandler  - 마우스 왼쪽 버튼 클릭시
: 파이어 버튼 누르기 시작 GetFireInputDown()
: 파이어 버튼 누르기 끝 GetFireInputReleased()
: 파이어 버튼 누르기 중 GetFireInputHeld()

2) recoil  -  WeaponManager
반동 : 슛 발사시 무기가 뒤로 밀리고 다시 제자리에 오기 
UpdateWeaponRecoil()

<오늘의 과제> WeaponManager (조준, 무기 흔들림)

1. 조준
: 마우스 우클릭하는 동안 조준모드
: 카메라 fov 조정으로 줌 확대
: 액티브 무기를 AimingWeaponPosition 위치로 이동

: 마우스 우클릭 해제하면
: 카메라 fov 조정으로 줌 해제
: 액티브 무기를 DefaultWeaponPosition 위치로 이동

2. 흔들림 - 무기를 손에 들고 이동할때 무기가 흔들리는 효과 연출
: 좌우 흔들림 구현
: 위아래 흔들림 구현
: 이동 속도에 따른 흔들림 계수 구하기
: 조준/조준해제에따른 흔들림 량 구분하기
: 싸인 곡선으로 흔들림량 구하기

'수업일지 > 유니티_MyFps2' 카테고리의 다른 글

MYFps2-5 슛팅 시스템  (1) 2024.11.07
MYFps2-3 CrossHair  (0) 2024.11.06
MYFps2-2 무기 장착, 무기 교체  (0) 2024.11.06
MYFps2-1 프로젝트 셋팅 - Health  (1) 2024.11.06

<오늘의 과제> CrossHair

3. CrossHairManager

- 무기에 따른 CrossHair 준비
 CrosshairData 구조체 작성 : 이미지, 크기, 색깔

- 디폴트 CrossHair
 1) Hexa, 55, white
 2) Drop, 100, 연한 연두색
 3) ShotGun_Circle, 40, 연한 하늘색

- 무기 교체시 CrossHair 바꾸기

- 적 포착시 CrossHair 효과 연출
(적 포착시 CrosshairData 설정값)
 1) Heax, 40, red
 2) Drop, 100, 연한 연두색
 3) ShotGun_Circle, 30, 진한 하늘색


1. CrosshairData 구조체 작성
2. CrosshairDataDefault, CrosshairDataTargetInSight 선언 및 셋팅
3. OnWeaponChanged
4. 적 Pointing 하기 - PlayerWeaponsManager
  Pointing at enemy handling
5. UpdateCrosshairPointingAtEnemy

<오늘의 과제> 무기 장착, 무기 교체

2. 무기 장착
1) 게임 시작시 무기 3개 지급하기

2) 지급받은 무기 플레이어에게 장착
:WeaponParentSocket의 자식으로 프리팹을 오브젝트 생성하여 장착하고 비활성화
:장착한 무기중 하나를 Active로 만들고 활성화
:활성화된 무기는 DefaultWeaponPosition

3) 무기바꾸기 - Input
: e,q 키 또는 Mouse ScrollWheel 입력받으면 무기 바꾸기

: 무기바꾸기 연출하기
: 현재 액티브한 무기는 DefaultWeaponPosition 에서 DownWeaponPosition으로 이동후 비활성화
: 다음 액티브할 무기는 활성화하고 DownWeaponPosition 에서 DefaultWeaponPosition으로 이동

4) WeaponController 클래스
: 무기를 제어하는 클래스로 무기마다 컴포넌트 추가

5) PlayerWeaponsManager 클래스
: 플레이어가 가진 무기들을 관리하는 클래스




'수업일지 > 유니티_MyFps2' 카테고리의 다른 글

MYFps2-5 슛팅 시스템  (1) 2024.11.07
MYFps2-4 WeaponManager (조준, 무기 흔들림)  (0) 2024.11.07
MYFps2-3 CrossHair  (0) 2024.11.06
MYFps2-1 프로젝트 셋팅 - Health  (1) 2024.11.06

<오늘의 과제> 프로젝트 셋팅  - Health
1. 프로젝트 셋팅
1)  프로젝트 셋팅 - 3D URP
- Probuilder 패키지 인스톨
- AI Navigation 패키지 인스톨
- 프로젝트 패키지 임포트

2) Health 구현
- TakeDamage()
: 무적상태이면 데미지 무시
: 입력받은 데미지량과 남은체력을 계산해서 실제 입은 데미지량 계산
: 실제 입은 데미지가 0이상이면 데미지 구현

- HandleDeath()
: 두번 죽이지 않기
: 남은 체력이 0이하이면 죽음 구현

- Heal()
: 입력받은 힐량과 남은체력을 계산해서 실제 힐량 계산
: 실제 힐량이 0이상이면 힐 구현
- 데미지 구현, 죽음 구현, 힐 구현 유니티 Event Action()으로 구현

3) Damageable 구현 - 데미지 입는 충돌체마다 Damageable 컴포넌트 추가
- InflictDamage
: 외부에서 데미지를 주면 Health 컴포넌트를 찾아 TakeDamage를 준다
: 데미지 입는 충돌체에 따라 데미지 입는 양을 다르게 준다

4) Destructable 구현 - 죽었을때 오브젝트(Health를 가지고 있는)를 킬하는 클래스
: 오브젝트의 죽음을 구현

'수업일지 > 유니티_MyFps2' 카테고리의 다른 글

MYFps2-5 슛팅 시스템  (1) 2024.11.07
MYFps2-4 WeaponManager (조준, 무기 흔들림)  (0) 2024.11.07
MYFps2-3 CrossHair  (0) 2024.11.06
MYFps2-2 무기 장착, 무기 교체  (0) 2024.11.06

+ Recent posts