전체 글 110

[Unity] Canvas Component

Render Mode: UI가 화면에 렌더링되는 방식을 설정.Screen Space - Overlay: UI가 항상 화면 위에 표시되며, 카메라와 무관하게 렌더링.Screen Space - Camera: 특정 카메라를 통해 UI가 화면에 렌더링.World Space: UI가 3D 공간 내에서 위치하며, 다른 오브젝트와 함께 렌더링.Pixel Perfect: 활성화하면 UI가 픽셀 단위로 정확히 렌더링되도록 조정. 저해상도 디스플레이에서 UI가 흐릿해지는 것을 방지할 수 있음.주의) 성능을 엄청 먹음Sort Order: Canvas의 렌더링 순서를 결정. 값이 낮을수록 먼저 렌더링됨.Target Display: UI가 출력될 디스플레이를 선택.Additional Shader Channels: 쉐이더에서 사..

Unity&C# 2024.12.23

[내배캠 최종 프로젝트] 스테이지 및 캐릭터 데이터 구성

Json으로 기본 데이터 테이블을 구성하고, 이를 Info클래스로 받아서 사용한다.앞의 Json데이터는 서버가 붙을 경우 서버에서 받아올 수 있다.이 데이터로 유저가 사용하는 데이터 클래스로 감싸고, 이 묶음을 유저 데이터에서 관리해준다.그리고 그 유저데이터를 다시 Json으로 구성하여 저장하고 있다. 내가 구성하는 부분은 데이터 테이블 부터 InstanceClass와 로드까지하고, 뒤의 저장하는 부분은 다른 분이 맡아 주셨다. 위는 캐릭터 테이블이고, 아래는 스테이지 테이블이다. id로 조인하여 사용 할 수 있게 만들어놨다.이를 json와 info클래스로 변환해주는 프로그램을 사용하여 json과 infoclass로 만들었다.InstanceClass에서는 Info클래스와 여러 기타 정보를 갖고 있다. [..

Develop_Log 2024.12.11

[내배캠 최종 프로젝트] 공격 및 공격 범위 표시

캐릭터의 스킬구조를 뜯어 고치고 있다.스킬 버튼을 누르면 해당 스킬의 범위를 보여주고, 버튼을 뗄때 스킬이 발동된다. 스킬 범위 구현데칼을 활용해서 보여주도록 했다. 90도 부채꼴, 180도, 원형 세종류의 데칼을 준비하고, 이 데칼이 바닥에만 표시될 수 있도록 Rendering Layers를 LightLayer1을 지정해주고, 바닥도 LightLayer1을 지정해주었다.public virtual void OnInputDown(){ if (IsSkillAvailable) { if (stateMachine.Skill!=null && stateMachine.Skill != this) { stateMachine.Skill.areaIndicator.gameObject.SetActive(false); }..

Develop_Log 2024.12.06

[Unity] Animation 관련 소소한 문제들

Can Transition To Self는 애니메이션 상태가 자기 자신으로 전이(Transition)할 수 있는지를 설정하는 것- 이게 켜져있어서 대쉬 애니메이션이 꼬였음. 왜꼬였지..? 현재 진행중인 애니메이션 클립의 절대적 시간을 알 수 없음 대신 normalized된 시간을 알 수 있음- Animator.GetCurrentAnimatorStateInfo(0).normalizedTime을 활용. if (stateMachine.Character.Animator.GetCurrentAnimatorStateInfo(0).IsTag(skill.GetAnim())) { normalizedTime = stateMachine.Character.Animator.GetCurrentAnimatorStateInfo..

Unity&C# 2024.12.06

[내배캠 최종 프로젝트] 캐릭터 구현

캐릭터 테이블엑셀로 캐릭터 및 스킬 테이블을 관리, 튜터님의 ExceltoJsonWizard를 사용해서 json으로 변환해서 사용.구현CharacterCharacterInfo 및 SkillInfo등 데이터를 Instance로 감싸서 갖고 있도록 함.~Instance클래스는 Info를 담고 있는 플레이어가 실제로 갖고 있는 정보의 클래스.캐릭터 강화 등을 확장이 있을 수 있어 Instance클래스로 관리하도록 함스킬에 강화가 가능하다고 하면.. 스킬Instance을 characterInstance에 넣어야할 것 같기도.스텟 및 hphandler등을 갖고 있어 캐릭터의 수치변화 상태를 갖고 있음.SkillBase를 상속받는 Skill들을 갖고 있음.Activator로 할당하고 있음. 리플랙션을 쓰는게 마음에..

Develop_Log 2024.12.04

[내배캠 최종 프로젝트] 맵 장애물 구현

쿠키런 : 모험의 탑을 레퍼런스로 개발중.정작 쿠키런 : 모험의 탑을 즐겨하는 팀원은 없다는게 웃음 벨구현 사항 본다고 내가 제일 많이 해본듯. 아니 기획한 사람은 왜 안하면서 왜 이걸 레퍼로 잡자고 한건데?문과 버튼 구현버튼쿠키런 플레이시 보면 밟으면 문이 열리는 기믹이 존재TriggerSource 클래스를 구현하여 트리거 되면 실행될 오브젝트를 받아서 실행시키는 기믹을 구현함버튼은 TriggerSource를 상속받아 OnTriggerEnter가 될때 실행되도록 함.니케 로스트 섹터를 보면 밟고 있어야 열리고 발을 떼면 닫히는 버튼이 존재함.Trigger될 오브젝트와 TriggerSource에 Cancle을 구현OnTriggerEnter일 때 Excute, OnTriggerExit일때 Cancle을 실..

Develop_Log 2024.12.03

[Unity] Character Controller & Rigidbody

1. CharacterControllerCharacterController는 캐릭터의 움직임을 처리하기 위해 설계된 특수한 컴포넌트로, 주로 캐릭터의 이동을 수동으로 제어하는 데 사용주요 특징직접 이동 제어: Move() 또는 SimpleMove() 메서드를 사용하여 캐릭터를 움직일 수 있습니다. 이동은 캐릭터가 물리적으로 기반한 힘에 의해 움직이는 것이 아니라 직접적으로 위치를 제어.충돌 처리: CharacterController는 다른 콜라이더와의 충돌을 처리하지만, Rigidbody처럼 물리 기반의 반응을 자동으로 제공하지는 않음. 미는 등의 물리상호작용을 원한다면 OnControllerColliderHit() 함수를 사용.중력 및 물리 제어: 중력은 자동으로 적용되지 않으며, 개발자가 직접 스크립..

Unity&C# 2024.12.02

[ScriptableObject Loader] Excel에서 SO로 만들기

엑셀에서 데이터를 불러와서 ScriptableObject를 만드는 프로젝트를 만들었다.1suyb/ScriptableObject-Maker:[GitHub - 1suyb/ScriptableObject-Maker: Csv로부터 scriptableObject를 만드는 기능Csv로부터 scriptableObject를 만드는 기능. Contribute to 1suyb/ScriptableObject-Maker development by creating an account on GitHub.github.com](https://github.com/1suyb/ScriptableObject-Maker)엑셀 데이터를 불러오는 것은 ExcelDataReader를 활용하였다.ExcelDataReader/ExcelDataReade..

Develop_Log 2024.11.24

[팀플젝 회고] 유니티 심화주차

진짜 미친듯이 최선을 다한...까지는 아니였지만 (동생 실기로 인해 주말에 불참 ㅠ)그래도 누가 아파서 통으로 빠지거나하지않고 처음으로 모든 구성원이 열심히 시간 맥스로 채워서 달린 프로젝트 였던 것 같다.이번에는 몬스터 전반 및 낮 과 밤 로직등을 맡아서 구현했다.오브젝트 풀링이나 스폰매니저, CSVtoSO등은 내가 이전에 쓰던 코드를 가져다가 사용했다.점점 프로젝트를 하다보니 다시 사용할 수 있는 코드들은 재사용하게 되니 1시간정도는....빨라진 것 같기도.몬스터 구현은 강의의 FSM을 사용하여 구현하였다.몬스터 상태가 몇가지 없어서 그냥 구현할까하다가 그래도 배운걸 적용해보고자 FSM을 사용하였다.처음에 chase랑 Attack 만 존재하는 상태라 아 이걸 왜 복잡하게 이렇게 한다고 했지... 싶었..

Develop_Log 2024.11.22