2016-07-25 6 views
0

をキャストスペル。私は能力の親である空のゲームオブジェクトを持っています、それはスペルと呼ばれるスクリプトとパーティクルシステムである子供だけを含んでいます。私は簡単にそれがどのできる地面に産卵されたが、現在のプレーヤーオブジェクトのtransform ユニティ3D私はユニティ3D 5.3.5で働いて呪文を実装するトラブルを抱えている

を指し、この

GameObject castedSpell = (GameObject)Instantiate(Resources.Load("Fireball"), transform.position, transform.rotation); 
  • transformのようにそれをインスタンス化することができますので、テスト目的のために私は、リソースフォルダに残さ変換からy軸を移動することによって固定され、これはまた時々粒子はプレイヤーと衝突する良いアイデアのように聞こえるしない、と私は画面の中央に十字線への呪文をインスタンス化したい:http://prntscr.com/bx91op

    十字はオンライン正確テラ内の1つのように動作します - 参照:https://www.youtube.com/watch?v=Jcg4o8IVwlw

    私はこの十字線のコピーを持っていますが、私はまだそれに向かって呪文をインスタンス化する方法を知りません。呪文がぶつかったら、何かダメージを与えるなどしなければなりません。私は、パーティクルシステムは、衝突の性質を持っていることを見ても、イベントトリガーprivate void OnParticleCollision(GameObject other)が、私はメインのパーティクルオブジェクトhttp://prntscr.com/bx9356にそれを取り付けたとき、これはまったく機能していないようです。私の選手オブジェクトにはPlayAreaのレイヤータグがあります。この特定のタグと衝突しないようにcollisionプロパティを設定すると、プレーヤーの内部でまだ変更されることはありません。

    だから、私の質問の短い要約:

    1. 適切に呪文をインスタンス化する方法は?
    2. それを回転させてスクリーンの十字線に向けるにはどうすればいいですか?
    3. 特定のオブジェクトとの衝突を防ぐにはどうすればよいですか?
    4. 衝突が発生したときの確認方法は?あなたの質問のほとんどは、すでに私は、NRに取り組むだろうコメントで回答されているので
+3

(だけ...あなたのカメラと文字の間に壁やオブジェクトについて注意してください)。これは、プレイヤーオブジェクトの起源に依存します。通常は、開始位置として機能し、適切に配置された空のゲームオブジェクトを使用します(たとえば、銃の前に)。あなたの場合、これはプレーヤーの手元にあるかもしれません。特定のオブジェクトとの衝突を防ぐために、さまざまなものを使用できます。層またはタグ。そして衝突は、 'OnCollisionEnter'のような関数で検出できます。 –

+0

方向については、私は 'transform.position.forward'のようなものを示唆します。ここで、transformはプレーヤーを指します。回転はそれに応じて選手の回転でなければなりません。 –

+0

http://wiki.unity3d.com/index.php/ShootingWeaponScript –

答えて

0

。 2:

ゲームオブジェクトは、あなたがtransform.LookAt()機能を使用することができ、特定のポイントをターゲットにします。

上記の目標点を決定するために、カメラ/十字線からシーンにraycastを行うのが最適です。その後、光線が当たる最初の点を呪文の目標点として使用することができます。あなたが開始位置としてプレイヤーを使用している場合、それは呪文が下部に始めるかもしれないという論理だ

関連する問題