Я создал этот код в сценарии удаления, во-первых:Как я могу удалить свой ландшафт?
var terrain = GetComponent(Rigidbody2D);
function Update()
{
if (terrain.position.x <= Camera.main.transform.position.x - 5)
{
Destroy(this.GameObject);
}
}
Вот снимок экрана:
И мой сборный материал:
Что я хочу, когда камера находится перед сборником, я хочу это чтобы удалить себя. Однако, это ошибка, я получаю:
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)
Это не сработало. Я сделал это, но он все равно не удалит. Помните, что ошибка означает, что Unity даже не знает, что такое ландшафт, что странно, потому что ему присваивается компонент Get – Number1son100
Интересно. Попробуйте установить рельеф = GetComponent (Rigidbody2D); в void Start {} и создайте переменную var public public Rigidbody2D; – Mikes3ds