Unity的C#編程教程_29_switch語句挑戰1

  • 進行 3 裝狀態切換:攻擊,防禦,站立
  • 分別對應按下按鍵:A,D,S
  • 將程式從 if else 轉化為 switch
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class StanceChange : MonoBehaviour
{

    public int state;
    public string show; // 用於在 unity 中可見效果

    // Start is called before the first frame update
    void Start()
    {
        state = 0; // 默認狀態為站立
    }

    // Update is called once per frame
    void Update()
    {
        // 切換狀態
        if (Input.GetKeyDown(KeyCode.A))
        {
            state = 1;
        }
        else if (Input.GetKeyDown(KeyCode.D))
        {
            state = 2;
        }
        else if (Input.GetKeyDown(KeyCode.S))
        {
            state = 0;
        }

        // 顯示狀態
        if (state == 1)
        {
            show = "Atack";
        }
        else if (state == 2)
        {
            show = "Defence";
        }
        else
        {
            show = "Stand";
        }

    }
}

  • 注意,這裡狀態切換部分程式碼是沒有辦法用 switch 語句的
  • switch 僅適用於狀態顯示部分程式碼
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class StanceChange : MonoBehaviour
{

    public int state;
    public string show; // 用於在 unity 中可見效果

    // Start is called before the first frame update
    void Start()
    {
        state = 0; // 默認狀態為站立
    }

    // Update is called once per frame
    void Update()
    {
        // 切換狀態
        if (Input.GetKeyDown(KeyCode.A))
        {
            state = 1;
        }
        else if (Input.GetKeyDown(KeyCode.D))
        {
            state = 2;
        }
        else if (Input.GetKeyDown(KeyCode.S))
        {
            state = 0;
        }

        // 顯示狀態
        /*
        if (state == 1)
        {
            show = "Atack";
        }
        else if (state == 2)
        {
            show = "Defence";
        }
        else
        {
            show = "Stand";
        }
        */

        switch (state)
        {
            case 1:
                show = "Atack";
                break;

            case 2:
                show = "Defence";
                break;

            default:
                show = "Stand";
                break;
        }

    }
}

Tags: