摧毁并重生游戏对象



我正在创建一种你必须卖一些食物的游戏。我正在编程游戏的原型,我的想法是,当你把食物(在这种情况下是汉堡(放在某个地方后,它就卖了。我希望这个游戏对象消失并在另一个点重生,但我的脚本根本不起作用。你能帮我吗?非常感谢。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class sellingSystem : MonoBehaviour
{
public GameObject food;
public bool foodExist;
void Start()
{
food = Resources.Load("food") as GameObject;
}
void Update()
{
food = GameObject.Find("food");
if(GameObject.Find("food") != null)
{
foodExist = true;
}
if (foodExist == false)
{
Instantiate(food, new Vector3(2.996f, 1.249f, -7.474f), Quaternion.identity);
foodExist = true;
}
}
public void OnCollisionEnter(Collision collision)
{
if(collision.gameObject.name == "food")
{
Destroy(food);
foodExist = false;

}
}
}

为什么要用Resources.Load实例化食物对象,然后在更新中使用GameObject.Find?

Instantiate(food, new Vector3(2.996f, 1.249f, -7.474f), Quaternion.identity);

同样在上面的行中,你试图实例化一个为null的对象,如果没有食物对象,你就不能生成一个";克隆";

我可以建议一种不同的方法吗?不要破坏对象,而是使用SetActive((方法,然后将对象重新定位到所需的位置。

最新更新