Unityでオブジェクトのスプライトを変更する


11

ヒーロー(オブジェクト)のスクリプトコード内で、スプライトを変更する可能性を追加します。

プレーヤーがスペースボタンを押すと、スプライトはプロジェクトに既に追加されている他のスプライトに変わります。

これを行うためのサンプルコードを提供してもらえますか?


1
以下のスプライトを変更するための関数は、あなたが要求したとおりに機能するはずですが、Unityアニメーターを調べることをお勧めします。通常、人々がスプライトを変更するときは、アクション(剣を振ったりドアを開けたりするなど)のアニメーションを作成することであり、これは通常、スプライトを手動で交換することにより、より基本的なエンジンで行われます。ただし、Unityにはアニメーションのサポートが組み込まれているため、必要なすべてのスプライトのアニメーションファイルを作成でき、アニメーションコントローラーで特定の条件が与えられた場合に自動的にプレイするようにゲームに指示できます。
ベンジャミンデンジャージョンソン

回答:


20

コードはコメントされています。楽しい。

public Sprite sprite1; // Drag your first sprite here
public Sprite sprite2; // Drag your second sprite here

private SpriteRenderer spriteRenderer; 

void Start ()
{
    spriteRenderer = GetComponent<SpriteRenderer>(); // we are accessing the SpriteRenderer that is attached to the Gameobject
    if (spriteRenderer.sprite == null) // if the sprite on spriteRenderer is null then
        spriteRenderer.sprite = sprite1; // set the sprite to sprite1
}

void Update ()
{
    if (Input.GetKeyDown (KeyCode.Space)) // If the space bar is pushed down
    {
        ChangeTheDamnSprite (); // call method to change sprite
    }
}

void ChangeTheDamnSprite ()
{
    if (spriteRenderer.sprite == sprite1) // if the spriteRenderer sprite = sprite1 then change to sprite2
    {
        spriteRenderer.sprite = sprite2;
    }
    else
    {
        spriteRenderer.sprite = sprite1; // otherwise change it back to sprite1
    }
}

GameObjectにスプライトレンダラーをアタッチする必要があります。新しいC#スクリプトを作成し、それにGameObjectをアタッチします。括弧の間にコードを貼り付けます...そこから理解できると思います:)


あなたは、伝説です。
kal kokah 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.