我试图让一只企鹅雪碧沿着我制作的平台来回滑动。我已经实现了这一点,但是我真的很努力让精灵一旦向后移动就水平翻转。我相信我可能需要改变我制作企鹅的方法以便合并翻盖。我看到很多围绕Y轴旋转的线索,但我不知道如何合并它。当它站起来时,企鹅只是来回地朝向正x方向。该游戏在Unity上是2D,用C#编写。谢谢你的建议。 :)
using UnityEngine;
using System.Collections;
public class Enemy1 : MonoBehaviour {
private SpriteRenderer SpriteRenderer;
public float min = 2f;
public float max = 3f;
public int x = 0;
public bool facingRight = true;
// Use this for initialization
void Start()
{
min = transform.position.x;
max = transform.position.x + 27;
}
// Update is called once per frame
void Update()
{
transform.position = new Vector3(Mathf.PingPong(Time.time * 2, max - min) + min, transform.position.y, transform.position.z);
}
}
答案 0 :(得分:1)
您可以跟踪精灵的方向并使用localScale.x
或flipX
:
float _prevX = 0f;
...
void Update()
{
float newX = Mathf.PingPong (Time.time * 2, max - min);
transform.position = new Vector3(newX + min, transform.position.y, transform.position.z);
Vector3 scale = transform.localScale;
scale.x = newX < _prevX ? -1 : 1;
transform.localScale = scale;
_prevX = newX;
}
另一种方法:跟踪你的精灵在“边缘”附近的时间点和“翻转”时间,否则如果你因为某些原因提前旋转你的精灵,那么第一种方法会更通用。
答案 1 :(得分:0)
我已经有一段时间了,但是我认为设置transform.scale.z = -1会翻转精灵,使其面向另一个方向。