0

我在具有刚体的对象上使用缩放动画时遇到了问题。LeanTween 和 iTween 都会出现此问题。动画每秒运行 1/3 秒,当刚体在重力作用下移动时,动画在动画期间似乎停止了。

将以下脚本添加到 Sprite,添加 Rigidbody2D,将 Rigidbody 上的 Interpolate 设置为“interpolate”,并将重力设置为 0.2 以便于查看:

using UnityEngine;
using UnityEngine.UI;
using System.Collections;

public class TestLeanTween : MonoBehaviour {
    void Start () {
        StartCoroutine(this.Grow());
     }

    private IEnumerator Grow() {
        float scale = 0.2f;
        while (true) {
            yield return new WaitForSeconds(0.7f);
            scale += 0.1f;
            LeanTween.scale (this.gameObject, new Vector3(scale, scale, 1), 0.3f);
        }
     }
}

将 Sprite 放在屏幕顶部并开始游戏。当物体下落时,向下运动将在缩放动画处于活动状态时反复暂停。如果 interpolate 设置为“extrapolate”,则精灵在缩放动画期间会下降得更快。

任何想法可能导致这种行为?

4

2 回答 2

0

Unity - Manual: Rigidbody中所述

在使用物理时更改变换可能会导致碰撞和其他计算问题。

另请阅读上述链接上的使用正确尺寸部分。

当您更改 GameObject 的比例时,它会影响游戏中 RigidBody/Physics 的计算。

一种可能的解决方法:

创建一个空的 GameObject 并将 RigidBody 和碰撞器附加到它。将您的“对象”(您要在其上应用动画的对象)添加为新 GameObject 中的子对象(将其添加为子对象后从对象中删除 RigidBody 和碰撞器,否则可能会导致进一步的问题)。完成后,现在为您的子对象的比例设置动画,让父对象(具有 RigidBody 组件)独自一人。

于 2015-06-19T02:12:00.723 回答
0

您只能缩放网格,而不能缩放其他组件。这将解决您的问题。(需要克里特空子对象)

于 2015-11-12T08:27:26.430 回答