我在一个带有刚体的物体上使用缩放动画遇到了一个问题。 LeanTween和iTween都会出现此问题。动画每秒钟运行三分之一秒,当刚体在重力作用下移动时,动画似乎在动画中停止。
将以下脚本添加到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放在屏幕顶部并启动游戏。当对象落下时,向下运动将在缩放动画激活时反复暂停。如果插值设置为"外推",在缩放动画期间精灵将更快
。可能导致此行为的任何想法?
答案 0 :(得分:0)
使用物理时更改变换可能会导致碰撞和其他计算出现问题。
另请阅读上述链接中的使用正确尺寸部分。
当您更改GameObject的比例时,它会影响游戏中RigidBody / Physics的计算。
可能的方法:
创建一个空的GameObject并将RigidBody和colliders附加到它上面。添加你的对象' (您想要应用动画的那个)作为新游戏对象中的子项(在将其作为子项添加后从您的对象中删除RigidBody和对撞机,否则可能会导致进一步的问题)。完成后,现在为子对象的比例设置动画,只留下父对象(具有RigidBody组件)。
答案 1 :(得分:0)
您只能缩放网格,而无需缩放其他组件。这将解决您的问题。 (注意克里特空子对象)