2014-07-21 16 views
0

내 게임에서 내 선수 (공)는 x 축에서 움직이지 않습니다. 공은 단지 점프 (y 축) 할 수 있습니다.Unity3D : 움직이지 않는 객체에 대한 트레일 렌더러

레벨은 항상 x 축에서 평행 이동하며 공이 움직이는 느낌을 플레이어에게줍니다.

내 질문은 : 내 볼에 트레일 렌더러 (또는 이와 비슷한 것)를 추가 할 수 있습니까? 공의 이동 감각을 강화하려면? 이미지로

.. : the effect I want to have http://www.barouch.fr/bouncyball.png

감사합니다!

+0

... 아니요.) – ababab5

답변

1

예, 가능하다는 것을 입증했습니다.

enter image description here

하면 이미지에서 볼 수 있듯이

, 재귀 I 중첩 5 구, Z 부모의 + 1 각.
우리는 각각 AddForce이 될 것이기 때문에 각각에 대해 rigidbody이 필요합니다.

그리고 여기 스크립트의 중요한 부분이 있습니다.
나는 HeadScript, BodyScript, TailScript라는 이름의 3 스크립트가 (좀 같은 뱀 게임을, 그래서 나는 그처럼 이름)

HeadScript :

void Update() { 
    if(Input.GetKeyDown(KeyCode.Space)){ 
     rigidbody.AddForce(new Vector3(0, 6, 0), ForceMode.Impulse); 
     GameObject child = transform.FindChild("Sphere").gameObject; 
     BodyScript childScript = child.GetComponent<BodyScript>(); 
     childScript.ChildJump(); 
    } 
} 

HeadScript 만 (맨 오른쪽 머리에 부착 구형), keydown (jumping)을 감지 할 필요가 있습니다. 그리고 나서 점프하고있는 것처럼 보입니다. 그런 다음 자식 객체 (왼쪽에 공)를 가져오고 함수를 호출합니다.이 함수는 BodyScript 안에 있습니다.

BodyScript는 :

public void ChildJump(){ 
    Invoke ("Jump", 0.1f); 
} 

void Jump(){ 
    rigidbody.AddForce(new Vector3(0, 6, 0), ForceMode.Impulse); 
    GameObject child = transform.FindChild("Sphere").gameObject; 
    if(child.GetComponent<BodyScript>() == null){ 
     TailScript childScript = child.GetComponent<TailScript>(); 
     childScript.ChildJump(); 
    } 
    else { 
     BodyScript childScript = child.GetComponent<BodyScript>(); 
     childScript.ChildJump(); 
    } 
} 

BodyScript은 제 1 및 제 마지막을 제외하고 모든 영역에 연결되어 있습니다. 부모 개체는 ChildJump 함수를 호출하며이 함수는 하나의 함수, Invoke 만 포함합니다.

Invoke은 특정 지연 후 함수를 호출하는 데 사용됩니다. 이 코드에서 지연은 0.1 초입니다.

Jump은 자체 자식 (왼쪽의 공)을 ChildJump이라고 부릅니다. 이제 왜 그것이 재귀 적 (recursive)인지를 알 수 있습니다.

마지막 조건에서 BodyScript 구성 요소를 가져올 때 오류가 발생하지 않도록 if 조건을 추가했습니다. 마지막 스크립트에는 TailScript 만 있습니다.

TailScript :이 자식이 없기 때문에

public void ChildJump(){ 
    Invoke ("Jump", 0.1f); 
} 

void Jump(){ 
    rigidbody.AddForce(new Vector3(0, 6, 0), ForceMode.Impulse); 
} 

마지막 스크립트, TailScript 만, 자체 AddForce가 포함되어 있습니다.

모든 구 (0을 제외한)는 0 후에 점프합니다.부모로부터 1 초 늦어지고, 당신이 그것을 흔적 렌더러라고 부릅니다.

이제 남은 것은 더 투명 해 지도록 알파 재료를 추가하는 것입니다. 욥이 끝났어!

+0

안녕하세요, 감사합니다. 나는 내일 아침에 그것을 시험 할 것이다 (나는 프랑스에있다). 감사합니다 1000 번;) – ababab5

+0

대단히 고맙습니다! – ababab5