如何在 Unity 中重新加入破碎的对象?
Posted
技术标签:
【中文标题】如何在 Unity 中重新加入破碎的对象?【英文标题】:How to rejoin the shattered objects in Unity? 【发布时间】:2020-05-17 18:11:17 【问题描述】:我在重新加入统一体中的破碎物体时遇到问题。
-
第一次我用枪打碎了许多物体。
现在我想重新加入我之前打破的所有破碎物体(有点修复它)。
请帮我解决这个问题
【问题讨论】:
能否提供物体破碎的相关代码?using System.Collections using System.Collection.Genereic; using UnityEngine; public class Destructible : MonoBehaviour public GameObject destroyedVersion; void OnMouseDown () Instantiate(destroyedVersion, transform.position, transform.rotation); Destroy(gameObject);
【参考方案1】:
考虑不完全销毁游戏对象,而只是将其设置为非活动状态,并将对它的引用存储在其他地方:
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 中重新加入破碎的对象?的主要内容,如果未能解决你的问题,请参考以下文章