❤❤Fungus新課程即將發布,快寫問卷拿優惠❤❤

2018年3月27日 星期二

Unity C# 程式 教學 Get Set 屬性 Property



using UnityEngine;
using Fungus;

public class Property_Test : MonoBehaviour
{
    //第1個例子
    //限制別人存取你的重要資料  辦手機的時候不會給身份證正本 只會給影本
    string _id = "身份證正本";
    public string ID
    {
        get { return _id + " 的影本"; }
    }

    //第2個例子 
    //遊戲裡鎖定hp最小值為0 (負數的時候強制改為0 )
    int _hp = 100;
    public int HP
    {
        get { return _hp; }
        set
        {
            _hp = value;
            if (_hp < 0)
            {
                _hp = 0;
            }
        }
    }

    //第3個例子
    //利用property屬性方便地存取Fnugus外掛內的變數
    public Flowchart flowchart;
    public int Score
    {
        get { return flowchart.GetIntegerVariable("分數變數"); }
        set { flowchart.SetIntegerVariable("分數變數", value); }
    }

    void Start()
    {
        Debug.Log("例子1\n通訊行員工拿到了 " + ID);

        Debug.Log("例子2\n目前生命值為" + HP);
        HP -= 109;
        Debug.Log("例子2\n目前生命值為" + HP);

        Debug.Log("例子3\n目前分數為" + Score);
        Score += 100;
        Debug.Log("例子3\n目前分數為" + Score);
    }
}

4 則留言:

  1. 你好,我在youtube上有看到你的幾段影片。請問有沒有辦法可以把script遊戲加入到fungus的flowchart中?比如,你有做的翻卡牌對比遊戲,如果用call method的話,遊戲和fungus接下來的指令會同時因為點擊而進行。有沒有辦法讓fungus等待遊戲結束之後再繼續呢?謝謝

    回覆刪除
    回覆
    1. 簡易的做法是分開場景(scene),比方A場景有Fungus的flowchart,對話完後Load scene到水果配對的場景B,B場景結束後再讀取場景C接續對話,用C#腳本切換場景:
      using UnityEngine.SceneManagement;

      SceneManager.LoadScene("場景名稱");

      刪除
    2. 感謝!因為想要小遊戲結束跳轉回原來的scene/flowchart,這樣不用load所有的Variable(有點偷懶)。所以我把call method放到了一個block的末尾,然後在script里用ExecuteBlock呼叫了下一個block。也算是勉強解決了我的問題。請問切換Scene會比較好一點嗎?還是說取決於遊戲大小?

      刪除
    3. 取決於遊戲大小

      刪除

留言給作者加油打氣