2016-06-11 16 views
0

Ich arbeite an einem Spiel, wie ein Feuerwehrmann, hier ist Szenario, in dem Spieler das Feuer durch Tuch löschen muss, hatte ich erfolgreich ein Tuch gemacht, und ich bin in der Lage, es auszuwählen, aber wann Ich werfe es, es wirft nicht, es blieb dort. Hier möchte ich Stoff in Brand werfen (bestimmte Entfernung). Hier ist der Code, den ich bisher gemacht habe. Irgendwelche Vorschläge, wo ist das Problem? Oder was zu tun ist?Wurf Artikel in bestimmter Entfernung

using UnityEngine; 
using System.Collections; 
public class pickup : MonoBehaviour { 
public Transform OnHand; 
// Use this for initialization 
void Start() { 

} 

// Update is called once per frame 
void Update() { 
    if (Input.GetButtonDown ("E")) { 
     GetComponent<Rigidbody>().useGravity=false; 
     this.transform.position = OnHand.position; 
     this.transform.parent = GameObject.Find ("FPSController").transform; 
     this.transform.parent = GameObject.Find ("FirstPersonCharacter").transform; 

    }   
    if (Input.GetMouseButtonDown (0)) { 
     this.transform.parent = null; 
     GetComponent<Rigidbody>().useGravity=false; 
//  Rigidbody.AddForce (new Vector2(1,4), ForceMode.Impulse); 
    } 
} 
} 

Antwort

0

Sieht aus, als ob Sie alles ziemlich korrekt haben. Sie haben den Rigidbody korrekt angesprochen, um die Schwerkraft abzuschalten, aber dann haben Sie versucht, falsch auf den Starrkörper Bezug zu nehmen, um Kraft hinzuzufügen.

GetComponent(). AddForce (neuer Vector2 (1,4), ForceMode.Impulse);

Ich sehe nicht, warum das nicht funktionieren würde. Nimm das '//' natürlich heraus. Außerdem können Sie den Starrkörper zu Optimierungszwecken in wach oder start speichern, anstatt die Variable mehrmals zu verwenden, anstatt GetComponent mehrmals zu verwenden.

etwas wie rb = GetComponent(); dann können Sie einfach rb.AddForce() verwenden.

Hoffe es hilft! Wenn dies der Fall ist, wenn Sie es als die richtige Antwort und Upvote markieren können, wissen andere, dass es beantwortet wurde :).

Verwandte Themen