1인 개발/나홀로 성 지키기 22

나홀로 성 지키기 개인 프로젝트 12일차

구현 기능 1. 사운드 슬라이더 바 구현 Loby 씬, Battle 씬에서 볼륨 조절 구현 ScriptableObject에 볼륨 값을 저장 public void BGMControll() { float sound = BGMSlider.value; GameManager.I.DataManager.GameDataSO.BGMVolume = sound; if (sound == -40f)// -40일 때, 음악을 꺼줌 { _audioMixer.SetFloat("BGM", -80f); } else { _audioMixer.SetFloat("BGM", sound); } } https://kkln2486.tistory.com/155 사운드 슬라이더 바 만들기 1. 슬라이더 추가 볼륨은 -80~20까지 존재하지만, -40~..

나홀로 성 지키기 개인 프로젝트 11일차

구현 기능 1. 스킬 장착 구현 Slot을 클릭하면 정보 UI가 생성되고, 장착을 클릭하면 장착 스킬이 변경 되도록 구현 https://kkln2486.tistory.com/183 인벤토리 만들기 인벤토리 만들기 1. 인벤토리 스크롤 만들기 https://kkln2486.tistory.com/180 인벤토리 스크롤 설정 (Scroll View, Grid Layout Group) Scroll View : 스크롤 기능 Grid Layout Group : 자식 오브젝트들을 일정하게 정렬 설 kkln2486.tistory.com 2. 스킬 뽑기 구현 Coin으로 스킬 뽑기를 구매 가지고 있는 구매 횟수로 스킬을 뽑을 수 있음 가지고 있는 스킬일 경우, CurrentUpgradeConut에 +1을 해서 MaxUp..

나홀로 성 지키기 개인 프로젝트 10일차

구현 기능 1. 스킬 추가 구현 기존 구현 스킬과 동일하게 구현 각각 SO 생성 2. 스킬 인벤토리 구현 public class PlayerSO : StatSO { [Header("Player Skill Inventory")] public List SkillInventroy; [Header("Player Equip Skills")] public SkillSO EquipMeleeSkill; public SkillSO EquipRangedSkill; public SkillSO EquipAreaSkill; } Player가 가지고 있는 스킬을 관리하는 List를 PlayerSO에 만들었다. https://kkln2486.tistory.com/183 인벤토리 만들기 인벤토리 만들기 1. 인벤토리 스크롤 만들기 ..

나홀로 성 지키기 개인 프로젝트 9일차

구현 내용 1. LevelUp 구현 버튼 클릭 시, 가지고 있는 코인으로 Player와 Castle의 경험치로 바꿀수 있도록 했다. 그리고 일정 경험치를 넘으면 레벨업을 하도록 구현했다. public void PlayerExpButton() { if(GameManager.I.DataManager.GameDataSO.Coin >= _expPrice) { GameManager.I.DataManager.GameDataSO.Coin -= _expPrice; _coinText.text = GameManager.I.DataManager.GameDataSO.Coin.ToString(); _playerSO.CurrentExp += _exp; if (_playerSO.CurrentExp >= _playerSO.MaxEx..

나홀로 성 지키기 개인 프로젝트 8일차

구현 내용 1. LobyScene 제작 2. UI 구현 일시정지 UI 구현 (볼륨 조절은 아직 미구현) GameClear UI 구현 GameOver UI 구현 3. DangerTime 구현 제한 시간이 20초 남았을 때, 빨간색 화면이 깜빡이도록 구현. Panel의 color.a 값 조절을 코루틴으로 반복해서 구현. https://kkln2486.tistory.com/382 화면 깜빡이기 구현 방법 1. Panel 생성 Panel을 생성해서 color.a 값을 중간 정도로 설정한 뒤, 칼라를 설정한다. 2. 스크립트 작성 FadeInOut using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEng..

나홀로 성 지키기 개인 프로젝트 7일차

구현 내용 1. 화살 구현 Rigidbody와 AddForce로 포물선 운동 구현 코루틴으로 좌, 우 반복해서 발사 오브젝트 풀 사용 https://kkln2486.tistory.com/367 2D 화살 구현 (포물선 운동) 구현 방법 1. 스크립트 작성 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Arrow : MonoBehaviour { public float _power; private Rigidbody2D _rigidbody; private void Awake() { _rigidbody = GetComponent() kkln2486.tistory.com 2. 원거리 적 구현 기존..

나홀로 성 지키기 개인 프로젝트 6일차

구현 내용 1. SoundManager 이전 3D 프로젝트에서 사용했던 방법을 참고해서 구현했다. Dictionary를 사용해서 string key값으로 AudioClip value 값을 가져와서 Resources 폴더에 있는 음악 파일을 재생할 수 있도록 구현 https://kkln2486.tistory.com/213 SoundManger SoundManger BGM을 담당하는 AudioSource 1개, Player SFX를 담당하는 AudioSource 1개, 그 외 SFX를 담당하는 AudioSource 여러개를 가지고 있음 BGM과 SFX의 사운드가 모두 SoundManger에서 재생 MainCamera 자식 오브젝트 kkln2486.tistory.com 2. CameraShake 메인 카메라의..

나홀로 성 지키기 개인 프로젝트 5일차

구현 내용1. MeleeSkill 구현 근접 스킬을 구현   기본 공격과 마찬가지로 새로운 공격 콜라이더를 생성 if(collision.CompareTag("Enemy")){ Vector2 _dir = collision.transform.position - _playerController.transform.position; collision.transform.GetComponent().Ishit = true; if(transform.CompareTag("AttackCollider")) { collision.transform.GetComponent().Hp -= _playerController.PlayerData.Atk; i..

나홀로 성 지키기 개인 프로젝트 4일차

구현 내용 1. 근거리 적 추가 앞서 상태패턴으로 구현한 Enemy 스크립트를 동일하게 사용, 추가 SO와 애니메이션 생성 2. SpawnSystem Stage 별로 적의 이름과 스폰 시간을 입력해서 각 스테이지 별로 난이도를 설정할 수 있도록 구현 https://kkln2486.tistory.com/360 SpawnSystem 구현 각 스테이지 별로 직접 Spawn하는 Enemy와 Spawn 시간을 입력해서 게임 난이도를 조절 가능 구현 방법 1. SpawnSystem 생성 빈 게임오브젝트로 SpawnSystem을 추가하고, 자식으로 빈 게임오브젝트로 Spawn 위 kkln2486.tistory.com 트러블 슈팅 1. 적끼리 충돌 추가로 근거리 적들을 생성하고 각각 SO를 생성해서 다른 속도, 공격력..

나홀로 성 지키기 개인 프로젝트 3일차

구현 기능 1. Castle 피격 구현 피격 시, 애니메이션 적용 Canvas World Space 생성, Hp 적용 2. ObjectPool 구현 Enemy의 재사용을 위해 Enemy가 죽으면, Destroy하지 않고, SetActive(false)하고, 재사용할 때, SetActive(true) 해줌 public void InstantiateEnemy(string poolName, Vector3 startPosition) { _enemy = ObjectPool.SpawnFromPool(poolName); _enemy.transform.position = startPosition; _enemy.SetActive(true); } 3. SpawnSystem 구현 코루틴을 실행해서 좌, 우 랜덤으로 Enem..