Unity特定のゲームオブジェクトがあなたの近くにあるかどうかを検出する方法

Trevn Jones

最初のゲームを作成する準備ができているので、テストゲームを作成していますが、最初のゲームに必要なすべての単純なメカニズムを確実に理解したいと思います。ゲームに含まれるメカニズムの1つは、アイテムが一定の距離にある場合にアイテムを拾うことです。ゲーム内に同じオブジェクトが複数存在する場合があります。コードはすべてのコインで機能すると思いましたが、そうではありません。Debug.Log()は1つの特定のコインでのみ機能しますが、近くにあるコインに関係なく起動するようにするにはどうすればよいですか?コード:

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

public class PlayerController : MonoBehaviour {
    //Player Variables
    public float moveSpeed;
    public float jumpHeight;
    public float raycastDistanceGround;
    public Text moneyText;


    private bool isGrounded;
    private Rigidbody _rgb;
    private GameObject player;
    private GameObject[] coin;
    private float distanceToCollectCoin;
    private float distanceToCoin;




    void Start () {
        moveSpeed = 7f;
        jumpHeight = 9f;
        raycastDistanceGround = 0.5f;


        isGrounded = true;
        _rgb = GetComponent<Rigidbody>();
        player = GameObject.FindGameObjectWithTag("Player");
        coin = GameObject.FindGameObjectsWithTag("Coin");
        distanceToCollectCoin = 2f;

        Cursor.lockState = CursorLockMode.Locked;
    }

    void FixedUpdate () {
        IsGrounding();
        Move();
        Jump();
        SetMoneyText();
        NearCoin();

    }

    //Player Moving Mechanics
    void Move() {
        var moveHorizontal = Input.GetAxis("Horizontal") * moveSpeed * Time.fixedDeltaTime;
        var moveVertical = Input.GetAxis("Vertical") * moveSpeed * Time.fixedDeltaTime;

        transform.Translate(moveHorizontal, 0f, moveVertical);

        if (Input.GetKeyDown(KeyCode.Escape)) {
            Cursor.lockState = CursorLockMode.None;
        }
    }

    //Player Jump Mechanics
    void Jump() {
        var jump = new Vector3(0f, _rgb.position.y, 0f);

        if (Input.GetKey(KeyCode.Space) && isGrounded == true) {
            for (float i = 0; i <= jumpHeight; i++) {
                jump.y += i;
                _rgb.AddForce(jump);
            }
        }
    }

    void IsGrounding() {
        if (Physics.Raycast(transform.position, Vector3.down, raycastDistanceGround)) {
            isGrounded = true;
        } else {
            isGrounded = false;
        }
    }

    void SetMoneyText() {
        moneyText.text = ("Money: " + EconomyController.Money);
    }

    void NearCoin() {
        for (int i = 0; i < coin.Length; i++) {
            distanceToCoin = Vector3.Distance(coin[i].transform.position, player.transform.position);

        }

        if (distanceToCoin < distanceToCollectCoin) {
            Debug.Log("Near Coin");
        }
    }
}
ryeMoss

あなたはちょうどいくつかのものを間違って括弧でくくったように見えます。ifステートメントをforループに移動する必要があります。現在、配列内の最後のコインの距離をチェックしているだけです。

void NearCoin() 
{
    for (int i = 0; i < coin.Length; i++) 
    {
        distanceToCoin = Vector3.Distance(coin[i].transform.position, player.transform.position);

        if (distanceToCoin < distanceToCollectCoin) 
            Debug.Log("Near Coin");
    }
}

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

特定のエリア内にゲームオブジェクトがあるかどうかを判断するための最良の方法は何ですか

分類Dev

Unityのゲームオブジェクトのドラッグイベントをすばやく検出する方法はありますか?

分類Dev

オブジェクトがインターバル/タイムアウトであるかどうかをどのように検出できますか?

分類Dev

トランスフォームの下にあるゲームオブジェクトが非表示またはアクティブかどうかを確認/検索するにはどうすればよいですか?

分類Dev

カメラFOV内のすべてのゲームオブジェクトを検出するにはどうすればよいですか?Unity3D

分類Dev

カメラFOV内のすべてのゲームオブジェクトを検出するにはどうすればよいですか?Unity3D

分類Dev

変数が純粋なJavaScriptオブジェクトであるかどうかを検出する方法

分類Dev

TensorFlowオブジェクト検出APIのウォームアップ学習率をどのように理解する必要がありますか?

分類Dev

オブジェクトが完全に他のオブジェクトの内部にあるかどうかを検出するJavaScript

分類Dev

カーソルがゲームオブジェクトの上にあるたびに、ゲームオブジェクトのハイライトを1つにまとめるにはどうすればよいですか?

分類Dev

各ゲームオブジェクトがインスタンス化された「ピース」またはクラスであるゲームオブジェクトのリストからゲームオブジェクトを削除するにはどうすればよいですか?

分類Dev

Unity3dでC#コンポーネントをあるゲームオブジェクトから別のゲームオブジェクトに渡すにはどうすればよいですか?

分類Dev

オブジェクトがcanvas要素の座標にあるかどうかを検出するにはどうすればよいですか?

分類Dev

オブジェクトにプッシュするオブジェクトの配列に、別のオブジェクトの配列からの特定のキー値があるかどうかを確認する方法

分類Dev

ゲームオブジェクトにUnityのコンポーネントメソッドがあるかどうかを確認するにはどうすればよいですか?

分類Dev

ゲームオブジェクトにUnityのコンポーネントメソッドがあるかどうかを確認するにはどうすればよいですか?

分類Dev

オブジェクトに空の配列があるかどうかをトップチェックする簡単な方法があると思います

分類Dev

ゲームオブジェクトの下にあるすべての子ゲームオブジェクトを配列またはリストするにはどうすればよいですか?

分類Dev

特定の長さのオブジェクトの配列を作成する関数を作成するにはどうすればよいですか?オブジェクトにはカスタム生成されたデータがあります

分類Dev

どのゲームオブジェクトが触れたかを検出しますか?

分類Dev

SwiftRealmレルムオブジェクトに主キーがあるかどうかを確認する方法は?

分類Dev

SDO_JOINを使用して、あるオブジェクトが別のオブジェクトの中にあるかどうかを確認する方法

分類Dev

オブジェクトに特定のメソッドがあるかどうかを確認する

分類Dev

指定された入力がPythonのオブジェクトであるかどうかを検証するにはどうすればよいですか?

分類Dev

try / catchを使用せずにオブジェクトに特定のキーがあるかどうかを確認する方法

分類Dev

Unityの単一のゲームオブジェクトで一部をアクティブにしたまま、複数のスクリプトを無効にするより効率的な方法はありますか?

分類Dev

NSArrayに同じオブジェクトがいくつあるかを検出する方法

分類Dev

古いゲームオブジェクトの機能を保存しながら、現在のゲームオブジェクトを新しいゲームオブジェクトに置き換えるにはどうすればよいですか?

分類Dev

オブジェクトがSQLServerのテーブルまたはビューであるかどうかを確認する方法はありますか?

Related 関連記事

  1. 1

    特定のエリア内にゲームオブジェクトがあるかどうかを判断するための最良の方法は何ですか

  2. 2

    Unityのゲームオブジェクトのドラッグイベントをすばやく検出する方法はありますか?

  3. 3

    オブジェクトがインターバル/タイムアウトであるかどうかをどのように検出できますか?

  4. 4

    トランスフォームの下にあるゲームオブジェクトが非表示またはアクティブかどうかを確認/検索するにはどうすればよいですか?

  5. 5

    カメラFOV内のすべてのゲームオブジェクトを検出するにはどうすればよいですか?Unity3D

  6. 6

    カメラFOV内のすべてのゲームオブジェクトを検出するにはどうすればよいですか?Unity3D

  7. 7

    変数が純粋なJavaScriptオブジェクトであるかどうかを検出する方法

  8. 8

    TensorFlowオブジェクト検出APIのウォームアップ学習率をどのように理解する必要がありますか?

  9. 9

    オブジェクトが完全に他のオブジェクトの内部にあるかどうかを検出するJavaScript

  10. 10

    カーソルがゲームオブジェクトの上にあるたびに、ゲームオブジェクトのハイライトを1つにまとめるにはどうすればよいですか?

  11. 11

    各ゲームオブジェクトがインスタンス化された「ピース」またはクラスであるゲームオブジェクトのリストからゲームオブジェクトを削除するにはどうすればよいですか?

  12. 12

    Unity3dでC#コンポーネントをあるゲームオブジェクトから別のゲームオブジェクトに渡すにはどうすればよいですか?

  13. 13

    オブジェクトがcanvas要素の座標にあるかどうかを検出するにはどうすればよいですか?

  14. 14

    オブジェクトにプッシュするオブジェクトの配列に、別のオブジェクトの配列からの特定のキー値があるかどうかを確認する方法

  15. 15

    ゲームオブジェクトにUnityのコンポーネントメソッドがあるかどうかを確認するにはどうすればよいですか?

  16. 16

    ゲームオブジェクトにUnityのコンポーネントメソッドがあるかどうかを確認するにはどうすればよいですか?

  17. 17

    オブジェクトに空の配列があるかどうかをトップチェックする簡単な方法があると思います

  18. 18

    ゲームオブジェクトの下にあるすべての子ゲームオブジェクトを配列またはリストするにはどうすればよいですか?

  19. 19

    特定の長さのオブジェクトの配列を作成する関数を作成するにはどうすればよいですか?オブジェクトにはカスタム生成されたデータがあります

  20. 20

    どのゲームオブジェクトが触れたかを検出しますか?

  21. 21

    SwiftRealmレルムオブジェクトに主キーがあるかどうかを確認する方法は?

  22. 22

    SDO_JOINを使用して、あるオブジェクトが別のオブジェクトの中にあるかどうかを確認する方法

  23. 23

    オブジェクトに特定のメソッドがあるかどうかを確認する

  24. 24

    指定された入力がPythonのオブジェクトであるかどうかを検証するにはどうすればよいですか?

  25. 25

    try / catchを使用せずにオブジェクトに特定のキーがあるかどうかを確認する方法

  26. 26

    Unityの単一のゲームオブジェクトで一部をアクティブにしたまま、複数のスクリプトを無効にするより効率的な方法はありますか?

  27. 27

    NSArrayに同じオブジェクトがいくつあるかを検出する方法

  28. 28

    古いゲームオブジェクトの機能を保存しながら、現在のゲームオブジェクトを新しいゲームオブジェクトに置き換えるにはどうすればよいですか?

  29. 29

    オブジェクトがSQLServerのテーブルまたはビューであるかどうかを確認する方法はありますか?

ホットタグ

アーカイブ