언리얼 엔진4에서 VS Code환경을 구성하면서 겪은 시행착오를 메모합니다. 언리얼엔진 4.27.2 버전을 기준으로 합니다. 순서 : - UE4 에디터 에디터 개인설정 - 일반 -> 소스코드 탭에서 소스코드 에디터를 'Visual Studio Code'로 변경 - 엔진 재시작 - 상단메뉴 파일 -> VisualStudioCode프로젝트 새로고침 --- 여기서부터 인텔리전스 버그가 발생 --- 이후 VS Code로 소스를 열면 헤더파일 임포트부분이 빨간줄이 그어져있고 인텔리전스가 작동하지 않는다. 검색해서나온 여러가지 해결책들을 적용해봤지만 내경우엔 VS Code 확장으로 고쳤다. 먼저 이 링크로 들어가서 Installation을 따라해준다. vsc-ext-ue4-int-fixes.md GitHub Gis..
private bool IsPointerOverUI() { PointerEventData pointerEventData = new PointerEventData(EventSystem.current); pointerEventData.position = Input.mousePosition; ListRaycastResult> results = new ListRaycastResult>(); EventSystem.current.RaycastAll(pointerEventData, results); for (int i = 0; i results.Count; i++) { if (results[i].gameObject.l..
Raycasthit은 구조체 이고 레이캐스트를 할 때 맞은 오브젝트에 대한 정보를 담아서 out하는 구조체이다 그 안에는 바로 접근가능한 transform과 collider멤버를통해 collider.transform으로 접근가능한 transform이 있다. 둘의 차이는 만약 레이캐스트에맞은 오브젝트가 리지드바디가 있을경우 Raycasthit.transform은 리지드바디가 붙어있는 Transform을 반환한다. 예를들어 이런식으로 루트부모에 리지드바디를달고 그 자식에 콜라이더를 달아놓으면 자식 콜라이더의 사이즈대로 충돌을 체크하겠지만 Raycasthit.transform은 리지드바디가있는 루트부모인 ZergelingMonster를 반환한다. 여기서 콜라이더가 붙어있는 오브젝트를 반환받고싶다면 Raycas..
기존에 사용하던 쉐이더에 컬러 마스크 기능 코드를 추가하여,컬러 마스크 기능을 이용하여 커스터마이징을 구현하였다. Patreon의 Quick Game Art Tips - Unity Color Mask | Minions ArtMinions Art의 공식 포스트www.patreon.com 다음은 쉐이더에 추가해야하는 부분이다.먼저 변경할 쉐이더 상단 Properties부분에 필요한 변수들을 추가해 준다. Properties {...생략 _Mask("ColorMask (Red = Prim Green = Sec Blue = Ter)", 2D) = "white" {} // mask texture _ColorPrim("Primary Color", Color) = (0.5,0.5..
이 기능을 텍스트로 설명할려면 뭐라고 해야할지 애매하긴한데 스크린샷을 첨부하자면 다음과 같다. 해당패널의 파란 이미지는 슬라이더이고 그 뒷배경은 스크롤렉트이다. 따라서 슬라이더를 움직일려면 그냥 파란 이미지를 클릭하고 좌우로 슬라이딩하면 되는데 마우스 휠이나 스크롤바 말고 스크롤을 할려면 컨텐츠들 사이에 좁은 빈공간을 클릭하고 위아래로 슬라이딩 해야한다. 왜냐하면 슬라이더가 이미 터치이벤트와 드래그이벤트를 먹어(?)버렸기 때문에 그 뒤에있는 스크롤렉트에는 이벤트가 닿지 않는것이다. 그래서 이 글은 슬라이더를 클릭, 드래그 했을 때 슬라이더 뿐만아니라 뒤에있는 스크롤렉트도 이벤트를 받을 수 있게 하는 방법을 기록하는 글이다. 우선, 다음과 같은 함수를 정의한다. 슬라이더 컴포넌트가 안붙어있는 오브젝트에있는..
부모 오브젝트가 따로있고 자식오브젝트로 모델이있을때 사용 모델 오브젝트에 스크립트를 달고 void OnAnimatorMove() { transform.parent.rotation = anim.rootRotation; transform.parent.position += anim.deltaPosition; } 이렇게 사용함 경우에 따라서는 저렇게 Rotation, Position에 다이렉트로 더해주지말고, 입력에 의한 이동방향에 더해서 움직여주면 자연스럽게 된다. Correct way to handle root motion with parent game object - Unity Answers Unity is the ultimate game development platform. Use Unity to bu..