2014-02-20 4 views
0

빈 게임 개체를 자식으로 가지고있는 구형 GameObject가있는 프로젝트를 만들고 있습니다. 라인 렌더러 컴포넌트는이 빈 게임 객체에 첨부됩니다.Unity - 게임 개체의 진행 방향을 계속 변경합니까?

나는 터치 영역을 볼 구형으로 만들었으므로 자식 객체의 라인 렌더러도 터치 위치를 향하게됩니다. 구가 한 축에서 회전 할 때 잘 동작합니다.

하지만 구형에 힘을 가하면 일반 볼처럼 모든 축에서 회전하기 시작할 때 문제가 발생합니다. 그러나 그것에 부착 된 라인 렌더러는 그면에 달라 붙어 있으며, 구가 아래를 향하면 라인 렌더러가 땅에 들어갑니다.

라인 렌더러 코드.

using UnityEngine; 
using System.Collections; 

public class LineRenderer : MonoBehaviour { 

private LineRenderer lineRenderer; 

private Vector3 finalTouchPosition; 

// Use this for initialization 
void Start() { 

    lineRenderer = gameObject.GetComponent<LineRenderer>(); 
} 



// Update is called once per frame 
void Update() { 

    Ray ray = new Ray (transform.position, transform.forward); 

    RaycastHit hit; 

    lineRenderer.SetPosition (0, ray.origin); 


    if (Physics.Raycast (ray, out hit)) { 
     lineRenderer.SetPosition (1, hit.point);  
    } 


} 

} 터치로 객체를 회전

코드입니다.

if(theTouch.phase == TouchPhase.Moved) 
    { 

    Vector3 tempTouch = new Vector3(theTouch.position.x ,theTouch.position.y, myCamera.position.y - targetObject.transform.position.y); 

    fingerPosition = Camera.main.ScreenToWorldPoint(tempTouch); 

    targetObject.transform.LookAt(fingerPosition); 

    isRotating = true; 

    } 

라인 렌더러가 항상지면과 평행하지만 구면 또는 구면에서 시작되기를 원합니다. 나는 많은 것을 시도했다. 그러나 여전히 해결책을 찾지 못했습니다.

제발 도와주세요. 고마워요

+0

시도한 내용으로 일부 코드를 게시하면 질문에 대한 답변이 조금 더 쉽게됩니다. –

+0

@StevenMills 제 질문을 수정했습니다. 이것을 봐주세요. –

답변

0

질문이 약간 혼란스러워 보이지만 공이 선 주위를 돌고 싶어하는 것처럼 보입니다. 볼은 자신의 의지로 회전하고 라인은 공과 회전에 대해 상대적으로 움직입니다.

정확하다면. 내가 제안하는 것은 두 가지 대상을 갖는 것이다. 공과 비어있는/보이지 않는 물건. 공은 회전하고 움직이며, 움직이지 않고 회전만으로 공 개체를 가져옵니다. 비어있는 객체와 계층 구조에 라인 렌더러를 놓으면 invis 객체가 공의 부모가됩니다. 접촉에 반응하는 공 물리학과 빵 롤링 공으로 빈 물체를 움직입니다.

죄송합니다. 설명하는 것이 좋지 않으면 죄송합니다. 그리고 계층 구조에서 부모를 모를 때 모르는 경우에는 함께 움직입니다.

관련 문제