2016-04-09 11 views
1

:ここ地形を自己削除するにはどうすればよいですか?私は最初のオフ、削除スクリプトにこのコードを設定

var terrain = GetComponent(Rigidbody2D); 

function Update() 
{ 
    if (terrain.position.x <= Camera.main.transform.position.x - 5) 
    { 
     Destroy(this.GameObject); 
    } 
} 

は画面の絵です:

enter image description here

そして、私のプレハブのもの:

enter image description here

私が欲しいのは、カメラがプレハブの前にいるとき、私はそれが欲しい自分自身を削除する。しかし、これは私が取得エラーです:

NullReferenceException: Object reference not set to an instance of an object 
UnityEngine.Component.GetComponent (System.Type type) 
Deletion..ctor() (at Assets/Scripts/Deletion.js:3) 
UnityEngine.Object:Instantiate(Object, Vector3, Quaternion) 
Repeating Terrain:SpawnTerrain(Object) (at Assets/Scripts/Repeating Terrain.js:60) 
Repeating Terrain:Update() (at Assets/Scripts/Repeating Terrain.js:52) 

答えて

0

はタイマーでそれを試してみて、あなたは右のオブジェクトを持っている

Destroy (this.GameObject, 5); 

または GameObject.Destroy(ゲームオブジェクト)

作るために、コンソール/デバッグを使用します
+0

これは機能しませんでした。私はそれをしましたが、それはまだ削除されません。覚えておいて、エラーはUnityがどんな地形でも知らないことを意味することを覚えておいてください。Get Componentで割り当てられているので奇妙です – Number1son100

+0

興味深い。 terrain = GetComponent(Rigidbody2D)を入れてみてください。 void Start {}で、public Rigidbody2Dテレインと呼ばれるvarを作成します。 – Mikes3ds

1

だから、私はthis.GameObjectをthis.gameObjectに置き換える必要がありました。私はそれを大文字にした、それはすべてだった。

+0

いいキャッチ!それを見ていない、大文字を使用することは、通常、クラスを指していることを意味します。 – Mikes3ds

+0

私はあなたの助けに感謝しますので、私はあなたに答えをあげます。 – Number1son100

+0

問題ありません。がんばろう! – Mikes3ds

関連する問題