xr(11)
-
XR Interaction toolKit IndexTouch 인식 이슈
이번 포스팅은 VR개발중 Hand Animation이나 XR Ray를 조정할때 CommonUsages.indexTouch를 쓰는 것이 불가능할 때 이를 해결 할 솔루션을 적을 생각이다. 자료를 찾아본 바로는 thumbTouch도 같은 방법으로 해결할 수 있을 것 같다. 먼저 XR Interaction Debugger에는 이렇기 IndexTouch의 상태가 잘 나타나는 것을 볼 수 있는데 이를 보면 하드웨어적 문제가 없다는 것을 알 수있다. 그렇다면 스크립트 상의 문제인데 몇번 시도해본 바로는 일단 CommonUsages.indexTouch는 위의 parameter를 보면 Boolean타입으로 나오는데 스크립트상에서 out의 타입을 bool로 적으면 컴파일 에러가 발생한다. 이는 유니티 문서에서 index..
2022.06.30 -
XR Interaction ToolKit Teleportation, Grab 분리
XR Interaction Toolkit에서 XRController의 컴포넌트 속성은 이렇게 된다. 여기서 우리가 지금 중점적으로 봐야하는 속성이 Select Usage이다. 왜 이 Select Usage가 문제냐면 이 속성이 Teleport시스템과 Grab시스템 두개에 적용되어서 어떠한 물체를 잡으려고 했을 때 Teleport가 동시에 발생되어 의도치않은 이동이 발생한다는 것이다. 이 문제를 해결하는 방법은 내부 시스템을 다량 분석해 Select Usage와 Teleport 스크립트, XR Grab interactable 스크립트등을 고치는 것이 있다. 하지만 위의 방법은 너무 방대해 나는 다른 방법을 사용했다. 생각해보면 나름 간단한 시스템이다. 코드를 한번 봐보자 using System.Collec..
2022.06.26 -
VR 캐주얼 FPS제작
이번 포스팅은 기존에 만들었던 프로젝트의 방향성을 확실하게 잡고자 캐주얼 fps장르로 변경한 것에 기초해 제작을 할 것입니다. 기존 프로젝트의 문제점 기존에 만들고 있던 프로젝트의 가장 큰 문제점은 바로 "전투가 정형화 되있지가 않다" 였다. 말만 언뜻 들어서는 '오히려 좋은 것 아닌가?'라고 생각할 수 있는데 이는 전투의 자유화를 의미하기도 하지만 동시에 개발의 난이도의 기하 급수적인 상승을 초래하고 전투의 긴장감을 오히려 떨어뜨릴 수 있는 요소이기도 했다. 만약 200가지의 스킬을 구현해 그 것을 독자적으로 3가지를 골라 전투를 진행한다는 것의 의미는 강력한 스킬 3가지만으로도 모든 전투를 행할 수 있다는 것도 의미하기 때문이다. 그렇기에 기존 전투시스템을 어느정도 방향성을 잡아두고 그 안에서 자신이..
2022.06.26 -
AR Foundation project
이번 2022년도 1학기 "일본학과 캡스톤 디자인"과목에서 우리팀은 AR기술을 활용한 일본어 학습 보조카드를 제작하기로 하였다. 이 팀에서 기술 담당인 나는 예전 Unity 컨퍼런스에서 본 기억이 있는 AR Foundation을 활용해 프로젝트를 진행하기로 하였다. 프로젝트의 결론부터 말하자면 완성을 할 수 있었다. 아래는 시연 영상이다. 지금부터는 위 시스템을 제작하기 까지의 과정을 기록하려고 한다. AR Foundation Unity에서 제공하는 패키지 중의 하나인 AR Foundation은 AR시스템을 쉽게 구축할 수 있는 기능을 제공한다. 이를 사용하기 위한 초기 세팅을 살펴보자. 먼저 AR Foundation의 빌드는 안드로이드 or ios로 빌드되어야 하기 때문에 먼저 플랫폼을 바꿔주어야 한다..
2022.05.21 -
Unity 스킬 확장
이번 포스팅에서는 지금까지 제작해온 스크립트들로 여러가지 스킬들을 조립하는 것을 해보겠다. 먼저 처음부터 스킬을 제작할 때 스킬1개라도 기능분리를 2~3개로 나눠주었다. 그 기준은 아래와 같이 나눠놓았다. 1.SkillManager에 들어갈 위임용 스크립트 2.스킬 발동조건 스크립트 3.데미지 트리거 스크립트 폭발타입 스킬 배리에이션 폭발타입은 조립순서가 명확하다. 기존의 만들었던 IceBomb의 로직을 그대로 가져가면 되었다. 하지만 한가지 추가할점이 있었는데 기존의 로직을 여러가지 모습으로 바꾸려면 정적으로 할당된 이펙트를 동적으로 할당해줄 필요가 있다. 그렇기에 맨처음 위임용 스크립트에 이펙트를 같이 넣어주었다. public class Bomb : MonoBehaviour { private Tran..
2022.02.22 -
Unity 스킬 피격 처리
이번엔 지금까지 만든 스킬에 트리거를 설정해 충돌판정을 제작해서 적의 Hp를 줄이는 스크립트를 짜보겠다. 이번 스크립팅의 가장 큰 쟁점은 기능분리에 초점을 잡았다. 충돌판정의 코드 자체의 내용은 어렵진않으나 앞으로 추가될 기능(피격시 넉백)을 생각하면 기능분리를 잘해놔야 다음 단계 개발에서 문제없이 작성을 할 수 있기 때문이다. Enemy 피격 처리 클래스 이번 프로젝트에서는 여러가지 스킬에서 데미지와 자신의 스킬형식에 따른 함수를 Enemy에 있는 피격처리 클래스로 메시지를 보내서 피격로직을 진행한다. 먼저 status관련 클래스이다. public class EnemyStatus : MonoBehaviour { public int hp; public int mp; public float speed; }..
2022.01.15