0

だから私は何年も前に書かれた「Connect4」ゲームの古いコードを持っています。今、結果を取得してunity3Dプロジェクト用に再構築するのに大きな問題があります。

問題は、すべての gameObject (シーンでインスタンス化できた) が、フレームごとに破棄され、再インスタンス化されることを意図していることです (そして、実際にはフレーム時間よりも長いと感じています)。時間内に各ゲームオブジェクトの色を取得したいのは本当に難しいようです。作成されたコードを入力しないことになっています。グラフィカルな結果として取得したものから情報を取得するだけです。

これで、プレーヤーのターンに応じて色が変わるグリッド配置を持つボックスのボードがあります (cp は赤、プライヤーは黄色)。

コライダーを持つ固定ボックスを作成し、フレームごとにゲームオブジェクトを衝突させたいと思っていましたが、失敗しました。

PS: 私はこのコードをテストしました。このコミュニティで見つけたすべての解決策は、何らかの助けを見つけたいと思っています。ありがとうございます。

using UnityEngine;
using System.Collections;

public class SelectorCode : MonoBehaviour
{
    public Collision other;

    public GameObject GO;

    void OnTriggerEnter(Collider other)
    {
        GO = other.gameObject;


    }
    void OnTriggerStay(Collider other)
    {
        GO = other.gameObject;


    }
    void OnTriggerExit(Collider other)
    {
        GO = other.gameObject;


    }

    void Update()
    {

        GO = this.other.gameObject;

    }
}
4

1 に答える 1

0

まず、SelectorCodeコンポーネントがアタッチされているオブジェクトにトリガー コライダーがあることを確認します (プロパティ "Is Trigger" がチェックされています)。

次に、other が割り当てられていないため、 Updatewith メソッドでエラーが発生します。GO = this.other.gameObject;その行を削除する必要があると思います。

最後に、コライダーを離れるオブジェクトOnTriggerExitを入れますがGO、これは意味がありません。おそらく、この時点でGOに割り当てる必要があります。null

void OnTriggerExit(Collider other)
{
    if (other.gameObject == GO) 
    {
        GO = null;
    }
}
于 2016-03-18T11:14:13.330 に答える