【问题标题】:Making changes in the Unity Editor before Playing/Running在播放/运行之前在 Unity 编辑器中进行更改
【发布时间】:2016-02-19 22:34:03
【问题描述】:

这可能是一个愚蠢的问题,但我想知道是否有一种方法可以以编程方式更改 Unity 项目中的某些内容(即通过 代码),以便当您按play,在它实际运行之前,就会发生这种变化,就像你在运行它之前手动改变它一样。

这就是我问这个(可能是愚蠢的)问题的原因:我有一个角色会在 2 个不同的场景中做某事。因此,用户选择两个切换之一来指示场景 1 或 2

问题是,在其中一种情况下,我必须调整角色的初始 T-pose 才能正确设置动画。所以,在场景一中,我只是运行它,一切都很好,但在场景二中,我首先必须使用鼠标和 Unity 的 rotate 工具来纠正肩关节的方向,以将角色置于精确的 T-跑前摆姿势。

当然,我在脚本中指定的任何方向都会在我运行应用程序时应用,而不是事先在 Unity 编辑器中应用。所以我想知道我是否可以在脚本中以某种方式硬编码这个更改,以便根据选择的场景,这一切似乎都是自动和专业的。这样的事情有可能吗?

【问题讨论】:

    标签: unity3d


    【解决方案1】:

    这样的事情在编辑器中可能会很棘手。正如您所说,您经常在实践中 - 只是在开发过程中 - 需要在点击 Play 时“每次都自动”做一些事情。

    例如http://answers.unity3d.com/questions/441246/editor-script-to-make-play-always-jump-to-a-start.html

    所以从某种意义上说,您的问题的答案是学习编辑器脚本,这本身就是一门艺术。

    在你的具体例子中:我真的会这样做。

    1) 选择有问题的角色

    2) 复制它

    3) 在第二个中,为“其他”情况设置它

    现在将它们都标记为非活动状态。启动时有一个脚本

     SetActive(true)
    

    只在你需要的那个上。

    注意,一般情况下,用字符。这是非常普遍的,普遍的,你有“多个”版本的角色。所以你可能有普通角色,布娃娃角色,爬上车的角色,等等。对于完全不同的运动和东西,您可能有不同版本的角色 .. 比如说,一种用于正常步行/跑步等,一种用于“攀爬悬崖”,另一种用于与爬行相关的动作。

    所以对于一个角色来说,你实际上有几个不同的角色是正常的/通常的。有一个只选择其中一个活动的例程。然后你会看到很多这样的代码..

    if ( freddy .blownUpInExplosion)
        freddy.ChangeToPuppet( "oneLimbVersion" );
    

    你知道吗?

    所以这确实可以解决您的问题 - 简而言之,点击 Apple-D 并复制角色。将“另一个”设置为“其他方式”。你要去参加比赛了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多