2017-08-29 9 views
0

ちょっと私はYoutubeで見つけたチュートリアルから、2Dテラリアのようなゲームに取り組んできました。私はQuadsをブロックとして使っています。シリーズへのリンクは次のとおりです。ユニティ5:レイキャストがブロックを見つけられない

https://www.youtube.com/watch?v=KONw5GX0Ixs

唯一の違いは、私は、2Dプロジェクトではなく、3Dにしてきたです。私はマイニングシステムを実装しようとしていますが、クリック数はクリックしているブロック数よりはるかに少なくなります。システムはクリックを検出することさえありません。私がクリックしているブロックはずっと少なくなります。私はこれを修正する方法がわからないので、何か助けていただき、ありがとうございます。

私のコードは次のとおりです。すべての

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 

public class Mining : MonoBehaviour { 
    public Vector2 direction; 
    void Update() { 

    if (Input.GetMouseButtonDown (0)) { 
      Vector3 c = Camera.main.ScreenToWorldPoint (Input.mousePosition); 

      RaycastHit2D hit2D = Physics2D.Raycast(this.gameObject.transform.position, direction); 
      Debug.Log ("hello"); 

      if (hit2D.collider.gameObject != null) { 
       Debug.Log (hit2D.collider.gameObject); 
       Destroy (hit2D.collider.gameObject); 
      } 
    } 
    } 
} 
+3

"こんにちは"メッセージは印刷されません?このスクリプトが現場のアクティブなオブジェクトに添付されていますか? –

+0

@Javatarええシーンのgameobjectにアタッチされている –

+0

@TheJavatar if文のif文の上にif文を置くと、このエラーが出ます。NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません Mining.Update()( Assets/Scripts/Mining.cs:16) –

答えて

0

まず、

その

戻り値かどうかなど

Input.GetMouseButton(0) 

Input.GetMouseButtonDown(0) 

を変更指定されたマウスボタンが押されています。

あなたの問題を解決するかどうかを教えてください。そうでない場合、私はsthを把握しようとします:)

関連する問題