我正在制作一个2D平台游戏,我遇到了一个非常恼人的问题,如果我将我的玩家角色GameObject移动到场景中的另一个位置,我的玩家就会卡住并且游戏会出现,从玩家原始跳跃位置和我移动到的位置。
我的玩家角色由许多部分组成,每个部分都是一个单独的GameObject。我知道问题肯定在我的动画中,因为如果我禁用动画组件,问题就会消失,只是我没有动画了。我相信问题可能在玩家角色的空闲动画和它的位置属性。没有附加脚本的地方,他的起始位置是硬编码的。
如何让孩子Gameobjects相对于父Player GameObject移动?我不能在没有游戏故障的情况下将场景中的玩家从其原始位置移开。
以下是一些截图
[玩家及其在层次结构中的部分] http://i67.tinypic.com/bdlc1j.png
[空闲动画] http://i64.tinypic.com/2gtp99x.png
[玩家的原始位置,如果从这里开始他就会工作] http://i66.tinypic.com/261jb6c.png
[玩家被移动,游戏漏掉了] http://i67.tinypic.com/292a2c3.png
答案 0 :(得分:1)
尝试禁用"应用Root Motion" Animator组件中的标志。 问题应该与动画改变位置值
的事实有关答案 1 :(得分:0)
我的猜测是你通过在编辑器中移动然后记录它来动画不同的部分。这个测量是动画跟踪您进行动画的原始位置。尝试从动画中删除这些部分。
答案 2 :(得分:0)
我无法解决当我将玩家角色移动到场景中的另一个位置时发生的spazzy-jittering问题,但我确实找到了解决方法。问题肯定在Animator组件和gameObject的Rigidbody2d中存在。
我没有将玩家移动到另一个位置,而是制作了一个“Spawn Point”,玩家在第一次玩这个场景时就开始了,并且能够自由地移动。差不多:
void start(){
transform.position = spawnPoint.transform.position;
}