簡體   English   中英

有沒有辦法在 Unity 中翻轉 Sprite?

[英]Is There a Way to Flip a Sprite in Unity?

我正在開發一個 2D Unity 項目,它是一個平台游戲,但你 controller 是具有重力的角色。 對於游戲,我需要讓它當你轉動重力說,向上,它應該翻轉精靈顛倒。 到目前為止,這是我在 C# 腳本中的代碼,該腳本附加到角色游戲 object 中。

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

public class GravityController2d : MonoBehaviour
{
enum GravityDirection { Down, Left, Up, Right };
public Animator animator;
public GameObject Game_object;
private Vector3 chestPos = new Vector3(6.69f, 1.45f, 0.0f);

void Start()
{
    Physics2D.gravity = new Vector2(0f, -9.8f);
}

void FixedUpdate()
{   
    if (Input.GetKeyDown(KeyCode.DownArrow))
    {
        Physics2D.gravity = new Vector2(0f, -9.8f);
        //flip
    }

    if (Input.GetKeyDown(KeyCode.LeftArrow))
        {
            Physics2D.gravity = new Vector2(-9.8f, 0f);
            //flip
        }
    
    if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            Physics2D.gravity = new Vector2(0f, 9.8f);
            //flip
        }

    if (Input.GetKeyDown(KeyCode.RightArrow))
        {
            Physics2D.gravity = new Vector2(9.8f, 0f);
            //flip
        }

    
} 
}

編輯:我使用的標簽是 Unity2D,但它自動將其更正為 unity3d 所以這就是我的借口。

另外:它還需要能夠翻轉 90 度,以防玩家將重力切換到左/右 go

假設您指的是SpriteRenderer ,您可以使用SpriteRenderer.flipXSpriteRenderer.flipY並檢查您的重力方向,例如

// Link in the Inspector
[SerializeField] SpriteRenderer spriteRenderer;

接着

private void UpdateSpriteFlip()
{
    // The conditions according to your needs of course
    spriteRenderer.flipX = Physics2D.gravity.x < 0;
    spriteRenderer.flipY = Physics2D.gravity.y > 0;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM