본문 바로가기
728x90

Unity24

[VisualScripting] 포탈 만들기 The Exit 8 on SteamYou are trapped in an endless underground passageway. Observe your surroundings carefully to reach "The Exit 8".store.steampowered.com뒷북이지만 8번 출구 같은 포탈을 만들어보려고 한다.8번출구 맵을 좀 살펴봤는데, 이상현상을 발견하고 되돌아갔을 때 이동되는 곳이 다른 것인지 회전값을 준 것인지 잘 모르겠어서 간단히 이동만 해보려고 한다. 캐릭터 컨트롤러 - Unity 매뉴얼캐릭터 컨트롤러(Character Controller) 는 Rigidbody 물리를 활용하지 않는 3인 또는 1인 플레이어에 주로 사용됩니다.docs.unity3d.com이전 글과는 다르게 .. 2025. 9. 23.
[VisualScripting] 02_몬스터 공격 만들기_모션 막상 만드려고 보니 너무 귀찮아지기 시작했다.이유는 너무나 번거로워서인데 번거러운 이유는 다음과 같다.우선 캐릭터와 몬스터 모두 캐릭터데이터, 캐릭터 오디오라는 것을 달고있다.캐릭터 데이터는 스텟 정보들을 위해 StatSystem, 장착 무기 정보를 위해 Weapon라는 클래스 변수가 있다.공격이 가능한지 확인하기 위해서는 CharacterData의 StatSystem에 들어가서 판단하는 부분이 존재한다.공격이 가능할경우 본인의 Stat과 장착한 무기의 값을 더해야 한다.공격을 수행함에 있어서는 WeaponAttackEffect 타입의 리스트 안에 있는 것들의 OnAttack 함수를 실행한다.근데 WeaponAttackEffect를 상속 받는 애들이 무기 효과들(도트딜 같은 것들)무기 효과의 OnAtta.. 2025. 9. 22.
[VisualScripting] 01_몬스터 기본 만들기 몬스터를 만들기 위해 씬에 배치 된 몬스터를 우클릭 한 뒤 언팩해준다.그 뒤 플레이어 캐릭터와 동일하게 스크립트들을 전부 제거해준 뒤 새로운 스크립트 머신을 달아준다.그리고 자식 오브젝트인 모델에 달려있는 스크립트 또한 제거한다.우선 적 컨트롤 코드를 보면 대기, 추적, 공격 상태로 현재 상태인 m_state 변수에 따라 Switch로 나뉘어 동작한다.우선 위와 같이 노드 구성을 해준다.시퀀스 노드의 경우 순차적으로 재생하는 노드이다. 이전 플레이어에서는 그냥 연속으로 했으나 위와 같이 시퀀스 노드로 각 부분들을 나눠서 관리하는 것이 더 좋을 듯 하다.스위치 노드를 선택하면 좌측 그래프 인스펙터에 옵션들이 존재한다.여기서 코드와 동일하게 IDLE, PURSUING, ATTACKING을 추가해준다.위 이미.. 2025. 9. 21.
[VisualScripting] 00_PC 이동 및 애니메이션 이벤트 우선 플레이어 캐릭터의 경우 스텟 관리, 사운드이펙트 관리, 컨트롤로 구성 되어 있다.적 유닛도 컨트롤을 제외한 스텟, 사운드 이펙트는 플레이어 캐릭터와 동일한 것을 확인할 수 있다.적 캐릭터는 CactusBossyEnemy, CactusNailsEnemy 두 종류가 있는데, 스텟들만 조금 다를 뿐이다.CharacterData를 살펴보면 기본 스텟은 체력, 힘, 방어력, 민첩을 가지고 있고, 무기나 인벤토리, 장착, 피격음 등을 설정할 수 있다.사실상 스텟은 어찌저찌 만들더라도 나머지 부분은 스크립트로 데이터를 만들던가 해야 될 것으로 보인다.그렇기 때문에 일단 간단한 이동부터 만들려고 한다.우선 네비메쉬가 있는 영역만 이동 가능하게 하기 위해 NavMeshAgent Move를 사용했다.우선 InputS.. 2025. 9. 21.
[VisualScripting] 03_중단 및 새로 하기 우선 이전 글 이후 여러 함수들을 열심히 만들어봤다.하지만 이전 글에서도 그렇고 기존 스크립트들을 참조하거나 없는 노드로 인해서 이게 맞나 생각이 들어서 중단을 결정했다.일단 이 코드 내에서 413번째 줄이 제일 문제이다.뭔 SFXManager의 PlayData를 새로 만들어서 합수에 집어넣어주는 줄인데,문제는 이게 별도의 노드를 만들던가 해야 가능한 작업인 것으로 추정 된다.또 하나는 Update 함수 내 이 부분이다.마우스 위치를 받아오고 거기를 기준으로 레이를 쏘는 부분인데 Get Mouse Position의 경우 Input Manager이기 때문에설정에서 Both로 하거나 Input Manager만 써야 사용이 가능하다.사실 둘 다 큰 문제는 아닌데 다른 측면에서 문제가 있다.실제 이동을 관장하는.. 2025. 9. 20.
[VisualScripting] 02_캐릭터 따라 만들기_Update 함수 이전 글에 이어서 Update 함수를 제작한다.Update 함수는 아래와 같다.더보기void Update(){ Vector3 pos = transform.position; if (m_IsKO) { m_KOTimer += Time.deltaTime; if (m_KOTimer > 3.0f) { GoToRespawn(); } return; } //The update need to run, so we can check the health here. //Another method would be to add a callback in the CharacterData that get called /.. 2025. 9. 19.
728x90