0

こんにちは私は、1つのオブジェクトが空のオブジェクトを通過するときにスコアカウンターを実行しようとしています。以下は私が使用しているコードです。

private void OnTriggerEnter(Collider other){
     var collider = projectile.gameObject;
     score = score+1;
    // Debug.Log(collider);
    Debug.Log(score);
}

発射物がオブジェクトを通過するとスコアが増加しますが、2つ目の発射物を撃った場合、最初の発射物がロールバックして2になるまで、スコアは再び増加しません。

私が知りたいのは、空のオブジェクトを1秒間通過した後にオブジェクトを破棄し、そのスコアを保存しながらスコアを1つインクリメントし、別のオブジェクトを通過させて前の手順を繰り返し、スコアを2にインクリメントする方法です。等々。

どんな助けでもいただければ幸いです

4

1 に答える 1

2

発射物がオブジェクトを通過するとスコアが増加しますが、2つ目の発射物を撃った場合、最初の発射物がロールバックして2になるまで、スコアは再び増加しません。

スコア変数は発射体スクリプトインスタンスで定義されていると思います。したがって、発射体が異なれば、スコア変数インスタンスも異なります。発射物のスクリプト以外の場所にスコアを保存することをお勧めします。

クラス(es.Score Manager)を使用してスコアを保存し、発射物スクリプトにそのスコアへの参照を追加します。

私が知りたいのは、空のオブジェクトを1秒間通過した後にオブジェクトを破棄し、そのスコアを保存しながらスコアを1つインクリメントし、別のオブジェクトを通過させて前の手順を繰り返し、スコアを2にインクリメントする方法です。等々。

これはあなたの問題を解決しません。ところで、 Object.Destroyメソッドを使用してオブジェクトを破棄できます。

GameObject aGameObject;
...
GameObject.Destroy(aGameObject); //this will destroy the object referenced by aGameObject
于 2013-02-20T13:09:58.680 に答える