如何将精灵旋转90°

时间:2019-02-21 13:08:15

标签: c# unity3d

我正在Unity中制作迷宫类游戏,我想让角色面向键盘上的箭头键的方向,“当玩家向右按下时,角色应该面向右”

这是我到目前为止所得到的:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MovimentoBola : MonoBehaviour
{
public float speed = 10.0f;
public float rotationSpeed = 100.0f;
public GameObject skull;
float posx, posy;
float rotx, roty, rotz; 



void Start()
{
    posx = Time.deltaTime * speed;
    posy = Time.deltaTime * speed;
    rotz = skull.transform.rotation.z;
}


void Update()
{
    if (Input.GetKey(KeyCode.UpArrow)) //Seta pra cima
    {
        transform.Translate(new Vector3(0, posy));            
    }
    if (Input.GetKey(KeyCode.DownArrow)) //Seta pra baixo
    {
        transform.Translate(new Vector3(0, -posy));
    }
    if (Input.GetKey(KeyCode.RightArrow)) //Seta pra direita
    {
        transform.Translate(new Vector3(posx, 0));
        rotz += 90;
    }              
    if (Input.GetKey(KeyCode.LeftArrow)) //Seta pra esquerdas
    {
        transform.Translate(new Vector3(-posx, 0));
    }
    }
}

2 个答案:

答案 0 :(得分:4)

所以您想让精灵反映玩家按下的方向吗?

最简单的方法是获取 SpriteRender 并翻转X值。像这样:

var sprite = GetComponent<SpriteRenderer>().flipX = true;

这将使精灵在X轴上翻转,而您不必弄乱转换,它将保留所有动画。要返回,只需将其设置为false。

答案 1 :(得分:2)

您可以尝试使用transform.Rotate(0, 0, 90);旋转精灵,或者如果每个方向说1个精灵,请使用gameObject.GetComponent<Sprite>().sprite = yourSprite更改精灵