(Unity) Easy Touch 플러그인에서 Easy Touch Controls Canvas를 제거한 후 로터가 고장났습니다

1659 단어 Unity3D
개발은 로터를 사용하기 위해 Easy Touch 플러그인을 선택했다(이곳에서 구체적으로 만드는 등 기본적인 조작은 말할 것도 없고 인터넷에 많다). Joysick을 만들 때 Easy Touch Controls Canvas를 부모 노드로 하고 그 안에 Canvas를 걸어서 렌더링을 하기 때문이다.그러나 일반적인 항목은 UI를 렌더링한 Canvas가 있고 이 로터는 UI에 속하며 UI의 노드 아래에 놓여 있기 때문에 EasyTouchControlsCanvas를 제거해야 한다.
직접 제거하고 조이식(Joysick)을 UI 아래에 놓으면 UI의 렌더링 모드가 Screen Space - Overlay가 아니면 안의 로터가 고장난 것을 발견할 수 있습니다. 여기서 가장 빠른 방법은 바로 이 모드로 바꾸는 것입니다.만약 고치지 않는다면 다음과 같이 조작한다
여기서 Canvas에 사용된 EasyTouch 코드를 찾습니다.
1. 먼저 프로젝트에서 가져온Canvas를 현재 프로젝트의 UI의Canvas로 변경합니다.
2. ETC Joystick에서.cs각본에서 다음 코드를 수정합니다.
public void OnDrag(PointerEventData eventData){

...
     /*  by game winner LUO
             *     EasyTouchControlsCanvas,   UICanvas  
             *  
			if (!isNoReturnThumb){
				thumbPosition =  (eventData.position - eventData.pressPosition) / cachedRootCanvas.rectTransform().localScale.x;
			}
			else{
				thumbPosition =((eventData.position - noReturnPosition) /cachedRootCanvas.rectTransform().localScale.x) + noReturnOffset;
			}

			if (isNoOffsetThumb){
			    thumbPosition =  (eventData.position - (Vector2)cachedRectTransform.position) / cachedRootCanvas.rectTransform().localScale.x;
			}
            */


            if ( !isNoReturnThumb )
            {
                thumbPosition = ( eventData.position - eventData.pressPosition );
            }
            else
            {
                thumbPosition =  ( eventData.position - noReturnPosition ) + noReturnOffset;
            }

            if ( isNoOffsetThumb )
            {
                thumbPosition = ( eventData.position - ( Vector2 ) cachedRectTransform.position ) ;
            }

좋은 웹페이지 즐겨찾기