如何重新加入Unity中破碎的物体?
How to rejoin the shattered objects in Unity?
我在重新加入 unity 中破碎的对象时遇到问题。
- 第一次我用枪统一打碎了很多物体。
- 现在我想重新连接我之前破坏的所有破碎对象(修复它)。
请帮我解决这个问题
考虑不完全销毁游戏对象,而只是将其设置为非活动状态,并将对它的引用存储在其他地方:
public class Destructible : MonoBehaviour
{
// Class based on your code sample above.
public GameObject destroyedVersion;
void OnMouseDown()
{
GameObject destroyedObject = Instantiate(
destroyedVersion, transform.position, transform.rotation);
Destroyed destroyed = destroyedObject.GetComponent<Destroyed>();
destroyed.SetOrigin(this);
gameObject.SetActive(false);
}
}
public class Destroyed : MonoBehavior
{
Destructible destructible = null;
public void SetOrigin(Destructible destructible)
{
this.destructible = destructible;
}
// This method can now be called from anywhere to rebuild:
public void RebuildOrigin()
{
if (destructible != null)
{
destructible.gameObject.SetActive(true);
Destroy(gameObject);
}
}
}
另一种可能更易于维护的方法是提供原始对象——例如建筑物 -- 能量水平或某种完整的布尔值,当它被摧毁时,你会改变它的外观和行为。
祝你好运!
我在重新加入 unity 中破碎的对象时遇到问题。
- 第一次我用枪统一打碎了很多物体。
- 现在我想重新连接我之前破坏的所有破碎对象(修复它)。
请帮我解决这个问题
考虑不完全销毁游戏对象,而只是将其设置为非活动状态,并将对它的引用存储在其他地方:
public class Destructible : MonoBehaviour
{
// Class based on your code sample above.
public GameObject destroyedVersion;
void OnMouseDown()
{
GameObject destroyedObject = Instantiate(
destroyedVersion, transform.position, transform.rotation);
Destroyed destroyed = destroyedObject.GetComponent<Destroyed>();
destroyed.SetOrigin(this);
gameObject.SetActive(false);
}
}
public class Destroyed : MonoBehavior
{
Destructible destructible = null;
public void SetOrigin(Destructible destructible)
{
this.destructible = destructible;
}
// This method can now be called from anywhere to rebuild:
public void RebuildOrigin()
{
if (destructible != null)
{
destructible.gameObject.SetActive(true);
Destroy(gameObject);
}
}
}
另一种可能更易于维护的方法是提供原始对象——例如建筑物 -- 能量水平或某种完整的布尔值,当它被摧毁时,你会改变它的外观和行为。
祝你好运!