Unity 68

2025.05.01 Unity 공부(5) - Ungtaverse(적 오브젝트 기초 구성)

새로운 Goblin 오브젝트 추가 Player를 생성할 때처럼 MainSprite 및 WeaponPivot 추가 Rigidbody2D 및 BoxCollider2D 추가 속도는 Player보다 느린 2로 설정해준다. 레이어를 Enemy로 설정. Animations 폴더 안에 새로운 Enemy폴더를 생성, Goblin도 따로 애니메이션 파일을 생성해준다. Idle Animation을 뚝딱 생성! Player때와 마찬가지로 Move, Damage 애니메이션도 만들어준다. Animator까지 설정 완료! 마찬가지로 Orc_Shaman 오브젝트를 생성해서, 애니메이션과 애니메이터를 뚝딱 연결해준다! 설정이 완료되었으면 Enemy폴더로 모조러 프리펩화해준다. 새로운 Enemycon..

2025.05.01 Unity 공부(4) - Ungtaverse(파티클로 게임 시각적 효과 강화)

Effect - Particle System 생성 파티클 설정값을 위와 같이 변경. DustParticleControl 스크립트 추가 MainSprite밑에 추가해준다. 이 때, Animator와 같은 오브젝트에 있어야 나중에 파티클 생성 시점을 정할 수 있다. 해당 스크립트를 위와 같이 작성. 유니티 스크립트 변수에 잘 넣어준다. 애니메이터로 돌아와 이벤트를 넣고 실행. 움직일 때마다 일정간격으로 뿅뿅 생기는 파티클을 확인할 수 있다! 새로운 Particle 생성 설정값은 위와 같이. 스프라이트를 Default로 바꾸어 조금 더 자연스럽게 설정. 마찬가지로 ProjectileManager에서 해당 파티클 스크립트를 가져와준다. 해당 메서드에 파티클이 생성될 위치, 발사한 무기 정보를..

2025.05.01 Unity 공부(3) - Ungtaverse(투사체 발사와 충돌 처리)

빈 오브젝트로 ProjectileManager 생성 같은 이름의 스크립트도 생성해준다. 해당 매니저를 싱글톤화해주고 총알 프리펩도 하나 선언해준다. 그 후 무기의 정보, 생성 위치, 발사 방향을 매개변수로 한 ShootBuller 메서드를 생성해준다.그리고 BulletIndex(지금은 화살)에 있는 투사체를 Prefab에 저장하고, 그것을 startPosition으로부터 회전값없이 생성시킨다. ProjectileController 스크립트 생성 LayerMask를 통해 충돌을 감지할 레이어(벽, 바닥 등)을 지정한다.그리고 각각 발사체 생존 시간, 방향, 발사 준비, 회전 여부, 충돌 및 속도, 스프라이트, 그리고 추가효과 등에 따른 변수들을 모조리 선언해준다. 만약 총알 발사 준비가 되지 않았다..

2025.05.01 Unity 공부(2) - Ungtaverse(스탯 시스템 기초 구성 및 원거리 공격 구현)

스탯을 관리해줄 StatHandler 생성 Player 밑에 달아둔다. 각각 Health, Speed값을 프로퍼티화해준다. BaseController의 Awake부분에 GetComponent를 통해 모든 컴포넌트를 가져와준다! 그리고 기존의 *5로 고정되어있던 값을 statHandler의 스피드값으로 변경. 유니티로 돌아가보면, 바를 통해 값들을 조절할 수 있게된다. ResourceController 스크립트 생성 마찬가지로 Awake문을 통해 모든 컴포넌트를 가져와 준뒤 현재 체력을 프로퍼티화, 최대 체력은 StatHandler에 고정되어 있는 Health값을 가져와준다. 그리고 체력에 변화가 생기면, 설정해둔 일종의 무적시간동안 Invincibility메서드가 실행, hp가 0이 되지 않는..

2025.05.01 Unity 공부(1) - Ungtaverse(충돌 처리 및 맵 구성, 애니메이션 만들기)

이제 플레이어를 위한 타일맵을 생성해야한다. Tilemap - Rectangular 생성 Ctrl + D 해서 총 4개까지 복제 후, 이름을 위와 같이 변경해준다. Window - 2D - Tile Palette를 켜준다! 맵을 그리기 위한 붓을 꺼낸다고 생각하면 된다. Create New Palette를 선택 Dungeon이름으로 Palette를 생성해준다. Artwork → Level 폴더 안에 생성! 그리고 사용할 타일들을 위에 같이 가져와준다! 팔레트를 사용해 바닥을 그려준 뒤 벽을 위에 생성해준다. ForeDesign으로 넘어와, 아랫벽을 마저 생성! Collision으로 넘어와준다. RGB값의 A를 0으로 설정, 투명하게 만들어준다. 전체 미니맵을 덮어줌으로서 Collisio..

2025.04.30 Unity 공부(7) - Ungtaverse(스프라이트 추가와 플레이어 이동 구현)

받아놓은 에셋들을 Externals 폴더 생성 후 풀어준다. 모든 캐릭터 스프라이트의 Pixels Per Unit을 16으로 설정. 이유는 기존 스프라이트의 크기가 16x16이기 때문이다! 우리의 주인공 Player 객체를 생성해준다. Rigidbody2D와 BoxCollier2D를 추가해 충돌 로직을 설정해준다. 이 때 Gravity Scale은 0으로 해줄 것. 밑에 MainSprite 생성 스프라이트를 설정해주고 Order in Layer값을 100으로 설정해준다. 짠! 휑한 Camera 공간 안에 Player Object만 우두커니 서있다. WeaponPivot 오브젝트 생성 Scripts → Entity → BaseController 스크립트 생성 PlayerController..

2025.04.30 Unity 공부(6) - TheStack(UI 구현)

UI 설정을 위한 Canvas 생성 Scale With Screen Size로 바꿔주고 값도 위와 같이 세팅. 빈 오브젝트 생성 후 위와 같이 추가 BaseUI, UIManager 스크립트를 생성해준다. 후에 UIManager에 의해 상속받아질 클래스이기 때문에 abstract를 통해 추상화, 그리고 Init에 virtual을 붙여 자식 클래스에서도 필요하면 커스터마이징할 수 있게 설정. Canvas 밑에 UIManager를 붙혀준다. UIManager를 싱글톤화해주고, TheStack이라는 컴포넌트를 씬 안에서 찾아서 가져와준다. UIManager 오브젝트의 자식 중에서 HomeUI를 가진 오브젝트를 찾고, homeUI에 저장한다. true는 비활성화된 오브젝트까지도 포함해서 찾겠다는 옵션..

2025.04.30 Unity 공부(5) - TheStack(점수와 콤보 구현, 연출과 꾸미기 적용)

점수, 콤보, 최대 콤보 로직 구현을 위한 변수 선언 5콤보 성공 시, 현재 Block의 크기를 점차 키울 수 있게 설정한다. 해당 기능을 블록이 쌓이는 타이밍으로 설정. 실행해보면, 5번 연속으로 블럭을 쌓을 때마다 0.5f씩 커지는 모습을 확인할 수 있다! 최고 점수, 최고 콤보값을 알아오기 위한 키값으로 위와 같이 설정해둔다. PlayerPrefs 명령어를 통해 Start문에 최고 점수, 최고 점수를 우선 0으로 설정해둔다. 그리고 UpdateScore문으로 이동, 현재 stackCount가 bestScore 이상 돌파했다면 해당 스코어를 bestScore및 bestCombo로 설정한다. 위 메서드는 게임오버 상태일 때 실행되도록 설정. 이제 게임오버 여부를 알아와야 한다. isGam..

2025.04.30 Unity 공부(4) - TheStack(블록 이동 및 배치 로직)

bool값으로 MovingX 이름의 변수 선언. 처음에 있을 블록, 그리고 움직일 블록까지 총 2번의 Spawn_Block 메서드를 생성해준다. Spawn_Block() 메서드에 위와 같이 추가. 이제 isMovingX값이 계속 바뀌므로 처음에는 X축으로, 다음 블록은 Z축으로, 그 다음은 다시 X축... 이런 식으로 교차 이동을 반복하게 될 것이다! MoveBlock() 메서드를 위와 같이 작성. BlockMovingSpeed에 Time.deltaTime을 곱해 현재 프레임에 따른 속도를 계산해주고, PingPong 명령어를 통해 현재 movePosition과 BoundSize 사이의 값을 왔다갔다하게 했다,그런데 이때, PingPong은 음숫값을 사용할 수 없다. 그렇기에 블록이 한쪽에 치우쳐서 ..

2025.04.30 Unity 공부(3) - TheStack(프로젝트 생성 및 기초 설정, 블록 적층 로직 및 위치 조정)

새 프로젝트를 생성, 처음 도전하는 3D 프로젝트이다! Main Camera의 값을 위와 같이 변경. Directional Light값도 위처럼 조정. 3D 오브젝트 - Cube를 하나 생성 값을 위와 같이 변경해준다. 그리고 Prefabs 폴더를 생성하여 해당 Block를 프리펩화. 새로운 빈 오브젝트를 생성, 값을 위와 같이 변경해준다. Scripts 폴더 생성 후 TheStack 스크립트 생성 로직 개발에 필요한 코드들을 작성해준다. 자세한 설명은 해당 변수들을 직접 사용하는 메서드에서 할 것이다. bool값으로 Spawn_Block() 메서드 생성. 만약 lastBlock이 이미 존재한다면 해당 prevBlockPosition값을 lastBlock의 현재 Position값으로 변경..