【发布时间】:2018-07-16 11:32:47
【问题描述】:
我创建了一个项目并在其中放置了一个角色,一个忍者。我画了他身体的每一部分,并将它们组合成一个有组织的游戏对象。它是这样组织的。 Ninja Organization
注意:Left_Arm GameObject 有一个父对象,因此它可以像真正的手臂一样被肩膀旋转
现在问题来了。我已经搜索和搜索了几个小时,但还没有找到一个解决方案来解决肯定如此简单和愚蠢的事情。在一个脚本中,我尝试移动 Left_Arm 父级以制作一个小动画。这是脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NinjaShooting : MonoBehaviour {
[Header("GameObjects")]
public Transform leftArm;
public Transform rightArm;
[Header("Other")]
public bool shooting = false;
// Update is called once per frame
void Update () {
Debug.Log(leftArm.localPosition);
leftArm.localPosition = new Vector3(100, 100, 100);
Debug.Log(leftArm.localPosition);
shooting = false;
}
}
公共变量全部赋值,一切正常,控制台没有错误,但leftArm.localPosition = new Vector3(100, 100, 100);这行似乎对我的角色没有任何影响。
这是运行后的控制台:Image
控制台似乎没问题。起始位置是 (-0.3, 0.2, 0),在 leftArm.localPosition = new Vector3(100, 100, 100); 之后,该位置被调试为 (100, 100, 100),应该是这样。但是检查器中的位置发生了变化,游戏窗口中也没有……
此外,每帧都会调试起始位置,但不应该这样做。所以我假设我的立场没有被考虑在内。
我已经这样做了很多次,而且一直都有效。
我什至尝试了一个新项目并重新创建了它,然后,神秘地,它成功了。所以我的组织或其他地方出了点问题。对不起,如果这是一个愚蠢的问题。
提前谢谢你
PS : 这是编辑器中的脚本图像,以防万一出现问题:Image
PS : 这个脚本很奇怪,因为我简化了它:)。但这也行不通
【问题讨论】:
-
游戏对象中是否有任何动画/动画师处于活动状态?您是否尝试过逐帧浏览? (暂停并使用跳帧按钮,两者都在“在编辑器中播放”按钮旁边)。
-
尝试将字段类型“Transform”更改为“GameObject”并将手臂拖入其中。
-
@Kwinten 是的,有动画和动画师,但只是想让手臂移动。也许动画是我的问题中使用的错误词。是的,我已经尝试逐帧进行。 t 我看不到任何问题....
-
@Immorality 我试过了也没有用....
-
我说的是 Unity
Animator或Animation组件。在许多情况下,动画将“锁定”它们所针对的属性,即使它们没有为任何东西设置动画。尝试禁用所有此类组件,仅使用“自定义”脚本来激活手臂的动画。