翻转图像/动画,使其遵循移动方向

时间:2014-11-03 10:11:33

标签: c# unity3d

您好,感谢您阅读本文。

我为我的"怪物"制作了一个小动作脚本。在我的游戏中。

using UnityEngine;
using System.Collections;

public class MonsterMovement : MonoBehaviour {
public Vector3 pointB;
bool facingLeft = true;

IEnumerator Start()
{
    var pointA = transform.position;
    while (true) 
    {
        yield return StartCoroutine(MoveObject(transform, pointA, pointB, 3.0f));
        yield return StartCoroutine(MoveObject(transform, pointB, pointA, 3.0f));
    }
}

IEnumerator MoveObject(Transform thisTransform, Vector3 startPos, Vector3 endPos, float time)
{
    var i = 0.0f;
    var rate = 1.0f / time;
    while (i < 1.0f) 
    {
        i += Time.deltaTime * rate;
        thisTransform.position = Vector3.Lerp(startPos, endPos, i);
        yield return null;
    }
}

这个脚本很简单,它可以移动对象/怪物 - >&gt; b又回来了。它不断重复它。

但是我怎样才能设法翻转物体的图像,使其跟随运动的方向。?

我真的希望你能帮助我。

非常感谢。

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的方法。

我添加了这个小代码:

bool facingLeft = true;

void Flip(){
    facingLeft = !facingLeft;
    Vector3 theScale = transform.localScale;
    theScale.x *= -1;
    transform.localScale = theScale;
}

然后更改while函数:

while (true) 
    {
        yield return StartCoroutine(MoveObject(transform, pointA, pointB, 3.0f));
        if (!facingLeft) {
            Flip();
        }
        yield return StartCoroutine(MoveObject(transform, pointB, pointA, 3.0f));
        if (facingLeft) {
            Flip();
        }
    }