Unity3d 在播放/运行之前在Unity编辑器中进行更改

Unity3d 在播放/运行之前在Unity编辑器中进行更改,unity3d,Unity3d,这可能是一个愚蠢的问题,但我想知道是否有一种方法可以通过编程方式更改Unity项目中的某些内容(即通过代码),这样当您在它实际运行之前按播放时,就会发生更改,就像您在运行它之前手动更改它一样 这就是为什么我要问这个(可能是愚蠢的)问题:我有一个角色会在两个不同的场景中做一些事情。因此,用户选择两个切换中的一个来指示场景1或场景2 问题是,在其中一个场景中,我必须调整角色的初始T形姿势,才能正确设置动画。因此,在场景一中,我只是运行它,一切都很好,但在场景二中,我首先必须使用鼠标和Unity的旋转

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

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

问题是,在其中一个场景中,我必须调整角色的初始T形姿势,才能正确设置动画。因此,在场景一中,我只是运行它,一切都很好,但在场景二中,我首先必须使用鼠标和Unity的
旋转
工具纠正肩部关节的方向,以便在运行之前将角色置于精确的T形姿势


但是,我在脚本中指定的任何方向都将在运行应用程序时应用,而不是在Unity编辑器中预先应用。因此,我想知道我是否可以在脚本中硬编码这一变化,使它看起来是自动的和专业的,基于所选择的场景。这样的事情可能发生吗?

在编辑器中,这样的事情可能会很棘手。正如您所说,您经常在实践中——就在开发过程中——需要在每次点击Play时“自动”执行某些操作

比如说,

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

在你的具体例子中:我真正要做的就是这样

1) 以这个人物为例

2) 复制它

3) 在第二种情况下,将其设置为“其他”情况

现在将它们都标记为非活动。当你启动一个脚本时

 SetActive(true)
只有一个你需要的

请注意,一般情况下,使用字符。这是非常常见的,普遍的,你有“不止一个”版本的字符。所以你可能有普通角色,布娃娃角色,爬进汽车的角色,等等。对于本质上不同的运动和东西,你可能会有不同版本的角色。。比如说,一个用于正常行走/跑步等,一个用于“攀登悬崖”,另一个用于爬行相关动作

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

if ( freddy .blownUpInExplosion)
    freddy.ChangeToPuppet( "oneLimbVersion" );
你知道吗


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

在编辑器中这样的事情可能会很棘手。正如您所说,您经常在实践中——就在开发过程中——需要在每次点击Play时“自动”执行某些操作

比如说,

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

在你的具体例子中:我真正要做的就是这样

1) 以这个人物为例

2) 复制它

3) 在第二种情况下,将其设置为“其他”情况

现在将它们都标记为非活动。当你启动一个脚本时

 SetActive(true)
只有一个你需要的

请注意,一般情况下,使用字符。这是非常常见的,普遍的,你有“不止一个”版本的字符。所以你可能有普通角色,布娃娃角色,爬进汽车的角色,等等。对于本质上不同的运动和东西,你可能会有不同版本的角色。。比如说,一个用于正常行走/跑步等,一个用于“攀登悬崖”,另一个用于爬行相关动作

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

if ( freddy .blownUpInExplosion)
    freddy.ChangeToPuppet( "oneLimbVersion" );
你知道吗

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