我已经连续几天没有成功了。我做了一个鸟儿的精灵动画拍打它的翅膀。我想让鸟儿飞到树上的特定位置。树是一个图像,其中包含附加动画的子图像。动画工作正常,但我想将它移动到树上的一个分支。下面列出的类附加到子图像上,但是鸟不会移动到分支。
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class FlyBird : MonoBehaviour {
public Transform target; // Target is empty game object defined in the inspector
public float MoveSpeed; // Set to 10 in the inspector
// Script is attached to an Image object and the child of the image is a sprite animation
void FixedUpdate()
{
transform.position = Vector2.MoveTowards(transform.position, target.position, MoveSpeed * Time.deltaTime);
Debug.Log(transform.position.x);
}
}
答案 0 :(得分:0)
我不知道你当前的行为是什么,但可能是你正在使用FixedUpdate(),所以你应该使用Time.fixedDeltaTime而不是Time.deltaTime
答案 1 :(得分:0)
如果我在编辑后正确使用,您正在使用UI图像。 对于这种类型的对象,您应该使用其RectTransform而不是Transform。 试试这个:
rectTransform.position = Vector2.MoveTowards(rectTransform.position, target.rectTransform.position, MoveSpeed * Time.deltaTime);
假设您可以从目标对象获取rectTransform,当然。另一种方法是操纵rectTransform.anchoredPosition。
在此处查看有关此类Rect变换的更多信息:http://docs.unity3d.com/460/Documentation/ScriptReference/RectTransform.html