Unity3d 对单元组件重置作出反应

Unity3d 对单元组件重置作出反应,unity3d,reset,Unity3d,Reset,我编写了一个脚本,用自定义材质替换对象上的材质。当部件损坏或禁用时,原始材料将放回原处。 但是,每当我使用“重置”按钮时,它就会中断系统,因为存储的原始材料丢失 有没有一种方法可以通过先将原始材料放回原位来应对重置 谢谢 您可以为自己的行为定义一个自定义Reset()方法。 只需在此方法中设置原始材质。如果只需要一个按钮将材质更改为原始材质,可以使用关联菜单属性: using UnityEngine; public class MaterialSwitcher : MonoBehaviour

我编写了一个脚本,用自定义材质替换对象上的材质。当部件损坏或禁用时,原始材料将放回原处。 但是,每当我使用“重置”按钮时,它就会中断系统,因为存储的原始材料丢失

有没有一种方法可以通过先将原始材料放回原位来应对重置


谢谢

您可以为自己的行为定义一个自定义Reset()方法。


只需在此方法中设置原始材质。

如果只需要一个按钮将材质更改为原始材质,可以使用关联菜单属性:

using UnityEngine;

public class MaterialSwitcher : MonoBehaviour
{
    private Material _originalMaterial

    [ContextMenu("restore to original material")]
    void RestoreOriginalMaterial()
    {
        GetComponent<Renderer>().material = _originalMaterial
    }
}
使用UnityEngine;
公共类材料开关:单一行为
{
私人材料(原材料)
[上下文菜单(“还原到原始材料”)]
无效恢复原始材料()
{
GetComponent().material=\u originalMaterial
}
}

我不能这样做,因为所有字段都会重置为其原始值。存储的材料因此被丢弃,我不能用重置方法重置它,因为它的字段已经首先被清除。你打算用重置按钮做什么?如果你只需要组件上的一个按钮就可以取回原始材料,你可以添加一个自定义按钮。这就是我现在拥有的!我只是想知道是否有可能在重置时做出反应,因为目前它破坏了系统。