2016-04-14 11 views
1

私は自分の大学のモジュールのための簡単なゲームを作っています。 マウスの左ボタンをクリックすると、ボクシンググローブが必要です。インスタント化後にUnity GameObjectsがレンダリングされない

私が午前問題は、手袋は階層に表示され、レンダリングされるのではなく、画面に表示されないということです、参照画像

画像1:

enter image description here

画像2:

enter image description here

次のように私のコードは次のとおりです。

public class script_CreateBoxingGlove : MonoBehaviour { 
    public GameObject BoxingGlove; 

    void Start() { 

    } 

    void Update() { 
     if (Input.GetMouseButtonDown (0)) { 
      var position = Input.mousePosition; 
      Instantiate (BoxingGlove, position, Quaternion.identity); 
     } 
    } 
} 

任意の助けいただければ幸い:)

+0

このような場合は、手袋を何度も何度もインスタンス化しないようにしてください。これを有効にして無効にしてください(もしあれば、それはボクサーの子供にしてください)。 –

+1

script_CreateBoxingGloveクラスを呼び出さないでください。それは動作しません。それをCreateBoxingGloveに変更して、ファイル名も変更するようにしてください。 – Fattie

+1

そして、あなたの問題は、Input.mousePositionがスクリーン位置でありワールド位置ではないためです。 'Camera.main.ScreenToWorldPoint(Input.mousePosition)'を使用してください。 @ GunnarB。 –

答えて

1

Input.mousePositionマウスの画面ではなく、世界座標系における位置(それがhere文書化されている)です。

したがって、位置として使用する前に、ワールド座標に変換する必要があります。インスタンス化ステートメントは、この変換する「MainCamera」としてタグ付けされた階層内のカメラを使用しています。この

Vector2 position = Camera.main.ScreenToWorldPoint(Input.mousePosition); 
Instantiate (BoxingGlove, position, Quaternion.identity); 

のようなものでなければなりません。したがって、このコードを動作させるには、階層にそのようなタグが付いたカメラがあることを確認する必要があります。

+0

ありがとう、これは働いています! –

関連する問題