【问题标题】:How can I keep AddComponent after stopping Unity script?停止 Unity 脚本后如何保留 AddComponent?
【发布时间】:2019-11-15 05:18:54
【问题描述】:

我尝试了如下代码。

using UnityEngine;

public class unityRecieve : MonoBehaviour
{
    // Start is called 
    void Start()
    {
        GameObject obj = GameObject.Find("Cube");
        obj.AddComponent<Animation>();
    }

    // Update is called once per frame
    void Update()
    {

    }
}

当我在 Unity 中按下开始按钮时,动画是 AddComponent,如下图所示。

但是,如果我再次按下开始按钮来停止 Unity,AddComponent 就会消失,如下图所示。

我想保留动画组件而不删除它,即使脚本在 Unity 中停止播放也是如此。我现在该怎么办?

我想在 Unity 中动态创建动画并烘焙它的动作,但是当我停止它时,AddComponent 消失了,所以我无法烘焙。

【问题讨论】:

  • 也许你正在寻找ExecuteInEditMode
  • 它消失了,因为你在运行时这样做..

标签: c# unity3d


【解决方案1】:

不要从脚本中添加组件,因为它只会在播放模式下运行。

您应该选择要添加组件的游戏对象,然后在检查器中单击“添加组件”,然后搜索并添加“动画”组件,而不是在脚本中添加。

【讨论】:

  • @taichi 顺便说一句,当我说在 your last question 中运行 App/PlayMode 之前通过 Inspector 添加组件时,我提到了这一点
【解决方案2】:

在运行时对场景中的任何游戏对象所做的更改在按下停止后不会持续存在。 Play 和 Stop 按钮模拟在调试环境中启动和关闭游戏。您要问的问题类似于启动游戏并在角色或对象在场景中移动时每次玩游戏时都会改变关卡。希望这是有道理的。要直接更改场景,您需要通过右侧窗口的检查器进行更改,您可以在其中看到附加到您选择的游戏对象的组件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-09
    • 1970-01-01
    • 2022-01-19
    • 2018-06-28
    • 2023-04-11
    • 2019-10-14
    相关资源
    最近更新 更多