2015-02-04 1 views
0

UnityObject의 RectTransform (패널)이 worldObject를 따라 가고 싶습니다. 나는이 효과를 얻었지만 운동은 내가 원하는만큼 부드럽 지 않다. 그것은 약간 들쭉날쭉 해 보인다. 그리고 나는 카메라를 움직이기 시작할 때 뒤쳐져있다.gameObject를 부드럽게 추적하는 RectTransform

Vector2 followObjectScreenPos = Camera.main.WorldToScreenPoint (planet.transform.position); 
    rectTransform.anchoredPosition = new Vector2 (followObjectScreenPos.x - Screen.width/2, followObjectScreenPos.y - Screen.height/2); 

팁과 트릭을 크게 높이 평가합니다. :-)

답변

2

이 옵션의 무리입니다 :

1) 당신은하게, WorldObject에 GUI가 캔버스를 추가 할 수 있습니다 단지 아이로 추가 (이 캔버스로 패널 렌더링은),하지만하지 않을 수 있습니다 정확히 당신이 필요로하는 것.

2) 톱니 모양 움직임을 제거하려면 한 방향으로 트위닝해야합니다. 당신은 당신의 코드에서 종속성을 포함하지 않는 경우

Tweener tweener = transfrom.DOMove (Target.position, 1).SetSpeedBased(); 
tweener.OnUpdate (() => tweener.ChangeEndValue (Target.position, true)); 

3), 당신이 현재 원하는 사이에 선형 보간을 수행 할 수 있습니다 DOTween는 다음과 같은 라인을 따라 뭔가 당신에게 필요한 결과를 줄 것입니다 내 개인적인 취향이다 position (또는 귀하의 경우 - anchoredPosition)을 Update 함수에 추가하십시오.

나는 트위너를 사용하여 업데이트 기능을 어지럽히 지 않도록 제안하고 일반적으로 트위터에는 모든 종류의 게임에서 많은 잠재적 인 용도가 있습니다.

다음은 당신이 왕따 자식 라이브러리를 사용하지 않을 경우 선형 보간에 대한 코드 예제입니다 : 업데이트 기능에

float smoothFactor = 1.0f; //used to sharpen or dull the effect of lerp 
var newPosition = new Vector3(x,y,z); 
var t = gameObject.transform; 
t.position = Vector3.Lerp (t.position, 
          newPosition, 
          Time.deltaTime * smoothFactor); 

장소를 그리고 그것은 게임 오브젝트가 newPosition 특정 따라야 할 것입니다.

관련 문제