unity 29

Unity 내배캠 최종 프로젝트 4일차, 시작

어제 일단 Terrain을 하나 만들어두고 그대로 진행된건 없었는데 오늘 뭔가 해보려고 하니 너무 커서 크기를 좀 조정해주었다.크기조정은 Terrain Settings쪽의 Mesh Resolution에서 Terrain Width(Y축)와 Terrain Length(Z축)를 조정해준다.Terrain Height는 무엇인가 하고 찾아봤는데, 산을 만들거나 언덕을 만드는 등 높이를 조정할 때 쓴다고 하지만 나는 아직 쓸일이 없기에 그냥 적당한 값으로 설정해주었다.임시 지형이기 때문에 여기까지 해도 상관 없는데 색이 너무 칙칙해 보여서 색도 좀 바꿔주었다. Paint Terrain의 Terrain Layers에서 Edit Terrain Layers를 클릭,원하는 에셋을 클릭해주었다. 나의경우 초록색의 에셋을 클..

Unity/Final 2025.04.09

[Unity] 클리키 게임 팀 프로젝트 중, 스탯 생성 (enum 사용전)

클리키 게임 중 내 역할은 플레이어 능력치 및 업그레이드였고 필수적으로 데이터 테이블을 ScriptableObject를 이용하여 수치 증가량 테이블을 만들고 업그레이드에 따른 능력치를 산출해야 했다.일단 내가 만들어야할 능력치는 치명타, 자동공격, 골드획득량 추가이다.치명타 데미지(공격력 및 확률), 자동공격 로직, 골드획득 로직은 다른분들이 맡아주셨으나 내쪽에서 능력치를 보내주면 그 능력치만큼 기능이 작동될 수 있게 수치를 잘 맞춰야 했다. [CreateAssetMenu(fileName = "PlayerStat", menuName = "Scriptable Object Asset/PlayerStat")] public class PlayerStat : ScriptableObject { Player ..

Unity/Unity Study 2025.04.07

[Unity] 클리키 게임 팀 프로젝트 중, 여러번 눌림 현상

클리키 게임을 만들고 있는 중 레벨업을 위해 버튼이벤트를 작성해주었다.레벨업 버튼을 눌렀을 때 한번씩 정상적으로 강화가 되던 기존 시스템에, 버튼을 꾹 누르고 있으면 자동으로 연속 강화되는 기능을 추가했다. 이를위해 이벤트 트리거를 활용하였는데 기능 추가 후 버튼을 한번만 눌러도 강화가 두번 실행되는 문제가 발생했다.public class PlayerUpgrade : MonoBehaviour{ // 버튼이벤트 메서드 public void UpgradeClick() { int gold = playerStat.upgradeGold; // 강화 비용 가져오기 if (player.gold >= gold) { player.gold -= gold; ..

Unity/Unity Study 2025.04.03

[Unity] 개인과제, ATM 만들기 - JSON을 이용한 유저 저장

일단 나는 다른분들이 Json을 사용하는건 많이 봐왔으나 보기만 했을 뿐 이론이나 내가 손댄적은 한번도 없었기에 저건 저장하는 기능의 일부구나 라고만 생각했지 그 외에 알고있는건 단 하나도 없었다.그런 상태에서 시작하려고 하니 이론적으로 공부해도 무슨소린지 이해가 안되어 어려운점이 많았다.. 일단 GameManager에서는 유저 데이터의 경로를 설정하고, 정보를 저장할 수 있도록 했다.public class GameManager : MonoBehaviour{ string userPath; // 사용자 목록 지정 경로 private void Awake() { // Assets 폴더 내 SaveData 폴더를 경로로 설정, userData 이름으로 저장 userPath = ..

Unity/Unity Study 2025.03.28

[Unity] Unity Hub - Add Modul (모듈 추가) 이 뜨지않는 경우

Git에 Merge중 충돌이 발생했는데 이유를 알고보니 팀원들 간에 설치된 모듈이 달라서 생긴 문제였다.모듈 추가는 Unity Hub > Installs(설치) > 원하는 버전 - 설정 > Add Module(모듈 추가) 로 가능하다. 그리하여 몇몇 모듈을 추가하려고 하였는데.. 난 왜 모듈추가가 없는것인가..찾아보니 hub에서 설치한게 아닌 홈페이지에서 exe 파일을 통해 설치를 했다면 설정에서 모듈 추가가 불가능하다고 한다.. 원래는 없는 메뉴를 추가할수있나 싶어서 찾아보던 중 직접 파일을 다운받는 방법이 있어 그렇게 해결하였다. Unity Download Archive 내 버전을 찾아 우측 Downloads에 있는 See all를 누르고 설치해야할 모듈을 찾아서 다운받고 설치해주면 완료! 이렇게 하..

Unity/etc 2025.03.27

[Unity] 개인과제, ATM 만들기 - PlayerPrefs를 통한 유저 저장

이제 사용자 정보를 저장할 차례, 사용자 정보는 제이슨(JSON) 혹은 PlayerPrefs를 통해 만들라고 되어있었는데 나는 제이슨은 자신이 없었으므로.. 바로 PlayerPrefs로 결정.public class GameManager : MonoBehaviour{ public static GameManager Instance; public UserData userData; private void Awake() { if (Instance == null) { Instance = this; } userData = new UserData("JeeU", 100000, 50000); } private void S..

Unity/Unity Study 2025.03.26

[Unity] 개인과제, ATM 만들기 - 입금, 송금

일단 순서는 메인화면 구성(현금, 사용자 정보, 잔액, 입출금), 유저데이터 클래스 작성, 게임매니저 생성, UI와 데이터 연동으로 하여 본격적으로 입출금 기능을 만들고 마지막에 저장기능까지 만들어줬다.[System.Serializable]public class UserData{ public string UserName; public int Balance; public int Cash; public UserData(string username, int balance, int cash) { UserName = username; // 이름 Cash = cash; // 현금 Balance = balance; //..

Unity/Unity Study 2025.03.25

[Unity] 3D Surviver 팀 프로젝트 중, Player 사망처리 및 애니메이션

public interface IDamagable{ void TakePhysicalDamage(float damage);}IDamagable 인터페이스는 데미지를 처리하는 메서드를 제공하며 StatManager에 넣어 다양한 클래스에서 피격에 대해 구현할때 TakePhysicalDamage 메서드를 호출해줄수 있게된다.이렇게 하면 IDamagable을 구현한 객체들이 일관된 방식으로 데미지 받는 방식을 처리할 수 있게 된다. public class PlayerCondition : StatManager{ public void TakePhysicalDamage(float damage) { onTakeDamage?.Invoke(); animator.SetTrigger(..

Unity/Unity Study 2025.03.25