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

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

<오늘의 과제> 저장하기, 불러오기 구현

1. 세이브, 로드 : PlayerPrefs - 씬 번호
 - 세이브 시점 : 메인1번씬, 메인2번씬 시작하면 씬 번호 저장하기
 - 메인메뉴에서 저장된 씬이 없으면 Load Game 버튼 비활성화
 - 메인메뉴에서 저장된 씬이 있으면 Load Game 버튼 활성화
 - Load Game 버튼 클릭시 저장된 씬(번호을 이용해서)으로 이동

2. 세이브, 로드 : File System - BinaryFormatter
 - 세이브 시점 : 메인1번씬, 메인2번씬 시작할때 씬 번호 저장하기
 - 저장내용 : 씬번호, ammoCount  -> 직렬화된 Class 이용
 - 저장된 씬이 없으면 Load Game 버튼 없거나 비활성화
 - 저장된 씬이 있으면 Load Game 버튼 클릭시 저장된 씬으로 이동이 가능

<필요 스킬>
- PlayerPrefs
- BinaryFormatter
- FileStream


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

MYFps-16 Terrain  (0) 2024.11.01
MYFps-15 옵션 : 사운드 셋팅  (1) 2024.11.01
MYFps-14 퍼즐/Enemy  (0) 2024.10.25
MYFps-13 MainScene02 씬  (0) 2024.10.23
MYFps-12 audiomanager 구현(싱글톤)  (0) 2024.10.23

<오늘의 과제> Terrain
1. Intro 씬 구성
  - Terrain Tool을 이용하여 숲속의 오두막 구성
  - Terrain Tool : 산지형, 숲속(나무, 풀) 셋팅
  - Text : West Wood, October 29th, 2008
  - 인트로 사운드 적용

2. Camera 애니메이션 
 <인트로 연출>
 - 카메라 애니메이션 시작
 - 인트로 UI 보이기
 - 인트로 UI 숨기기
 - 오두막 앞에서 오두막 라이트 켜기
 - 오두막에 도착하는 애니메이션 종료 후 
 - 오두막 라이트 끄고 다음 씬으로 이동


3. Asset Store
 - The Shed (오두막)


4. 씬 이동
 - 메인메뉴에서 새로하기 누르면 인트로씬 변경
 - 인트로씬 종료후 플레이1번 씬 변경



<필요 스킬>
- Terrain

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

MYFps-17 저장하기, 불러오기 구현  (0) 2024.11.04
MYFps-15 옵션 : 사운드 셋팅  (1) 2024.11.01
MYFps-14 퍼즐/Enemy  (0) 2024.10.25
MYFps-13 MainScene02 씬  (0) 2024.10.23
MYFps-12 audiomanager 구현(싱글톤)  (0) 2024.10.23

<오늘의 과제>  옵션 : 사운드 셋팅

1. 옵션 UI 구성
 - 배경음, 효과음 슬라이드바, 나가기 버튼
 - 메인 메뉴에서 옵션 버튼을 누르면 메뉴리스트가 없어지고 옵션 UI 가 보이도록 구현
 - 옵션 UI에서 나가기 버튼 누르면 옵션 UI가 없어지고 메인 메뉴 리스트가 보이도록 구현

2. 사운드 볼륨 적용
 - 배경음, 효과음 볼륨 조정
 - 배경음, 효과음 믹서 구현

3. 세이브, 로드 : PlayerPrefs
 - 옵션의 배경음 볼륨
 - 옵션의 효과음 볼륨
<옵션 볼륨 조정 후 게임 재실행시 확인 사항>
 - 옵션 화면으로 들어갔을때 이전 실행에서 조정했던 값이 슬라이더에 적용되었는지 여부
 - 배경음과 효과음의 사운드 Mixer에 조정된 값이 적용되어 사운드가 플레이 되는지 여부

4. 크레딧
- 개임 개발자 리스트 보여주기
- 크레딧 보여주다가 Esc키 누르면 메인메뉴로 돌아가기 구현

- 크레딧 : 하단에서 위로 올라가는 애니메이션 구현
   "Design      Y.D Kim"
   "Program    H.S Lee"
   "Art            Y.J  Park"
   "Special Tanks  Boss"

<한글 크레딧>

기 획       김 길동
프로그램   백 두산
아트        김 한별
특별히 고마운 분 사장님 


<필요 스킬>
- SoundMixer, AudioMixerGroup
- PlayerPrefs

한글 코드값
32-126,44032-55203,12593-12643,8200-9900
영어, 한글범위,한글 자모, 특수문자





















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

MYFps-17 저장하기, 불러오기 구현  (0) 2024.11.04
MYFps-16 Terrain  (0) 2024.11.01
MYFps-14 퍼즐/Enemy  (0) 2024.10.25
MYFps-13 MainScene02 씬  (0) 2024.10.23
MYFps-12 audiomanager 구현(싱글톤)  (0) 2024.10.23

<주간 과제> - 퍼즐/Enemy
1. MainScene02 - 맵 구성
1) 1번구역
 - 테이블 위의 컵
 - 테이블 위의 퍼즐 조각 ( Left Eye ) 
 - 벽위에 퍼즐 조각 완성본 넣기
 - 비밀 출구 벽

2) 2번 구역 (40x40)
 - Enemy - AI 네비메쉬, 애니메이션(애니메이터)
:패트롤
:추격
:공격

3) 3번 구역
 - 벽위에 퍼즐 조각 ( Right Eye )

4. MainScene02 구현내용
 1) 테이블 위의 컵 혼자서 떨어지기
 2) 퍼즐
  - 퍼즐조각 모우기 ( Left Eye, Right Eye )
  - 퍼즐조각 완성시 출구 나타내기
  - 퍼즐조각 완성본 가져오면 출구 열리기

<오늘의 과제>
1. 1번구역 맵 구성
 - 테이블 위의 컵 혼자서 떨어지기 (트리거 활용)
 - 바닥에 떨어질때 효과음 발생(DoorBang 변형)

2. 테이블 위의 퍼즐 조각
 - Left Eye 획득하기
 - 획득 UI 보여주기

<필요 스킬>
- Rigidbody
- collision.relativeVelocity


















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

MYFps-16 Terrain  (0) 2024.11.01
MYFps-15 옵션 : 사운드 셋팅  (1) 2024.11.01
MYFps-13 MainScene02 씬  (0) 2024.10.23
MYFps-12 audiomanager 구현(싱글톤)  (0) 2024.10.23
MYFps-11 메뉴/타이틀 씬  (0) 2024.10.21

<주간과제>
1. MainScene02 씬 만들기

2. MainScene02 씬 구성하기 (필수요소)
 - MainScene01 에서 넘어오는 문
 - 다음 구역으로 이동하는 문
 - 부서지는 오브젝트 설치
 - 조명 : Lamp, Candle

3. MainScene02 구현내용
 - 탄환 먹기
 - 부서지는 오브젝트 총으로 쏴서 부서뜨리기
 - 부서지는 오브젝트에 다음구역으로 이동하는 문의 열쇠를 숨겨놓기
 - 숨겨 놓은 열쇠를 획득하기
 - 다음구역으로 이동하는 문을 열기

4. 권총 Clip
 - 권총 벽에 묻히는 버그 처리


<오늘의 과제>
1.  MainScene02 씬 만들기
  - MainScene01 프리팹 가져오기 (재활용)

2. MainScene002 씬 구성(필수)
 - 벽화로 설치
 - 의자 설치
 - 탁자 2개 설치
 - 탁자위에 램프 설치
 - 화로, 탁자위에 촛불 설치

2-1촛불 불빛(조명) 흔들리는 애니메이션 구현
 - 애니메이션 3개 만들어 랜덤 플레이

3. MainScene02 구현내용
- 테이블 위에 탄환 박스 설치 및 먹기 : 탄환 7 추가
- 기존 Interactive Action 이용

- 플레이어가 직접 부딪혀서 먹는거 구현 
(Mathf : Sine 곡선 활용 - 움직임)




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

MYFps-15 옵션 : 사운드 셋팅  (1) 2024.11.01
MYFps-14 퍼즐/Enemy  (0) 2024.10.25
MYFps-12 audiomanager 구현(싱글톤)  (0) 2024.10.23
MYFps-11 메뉴/타이틀 씬  (0) 2024.10.21
MYFps-10 첫번째 씬 마무리  (1) 2024.10.21

+ Recent posts