來開始製作 Unity 如何使用 Windows類型的插件

可分為假插件和真的插件(自創名詞可能跟別人不同)

簡單來說就是在 Edtior 讀取假的 .dll  

意義就是像是 C# interface 感覺 

Run實體機上時改為去抓真的 .dll

所以測試必須在實體機上

在Edtior 可以使用假的.dll 回傳訊息,來顯示是否呼叫正常...等。

新增 Unity - Assets/Plgin_WindowPhone.cs 

  
  using UnityEngine;
  using UnityEngine.UI;
  using System.Collections;

  public class Plgin_WindowPhone : MonoBehaviour {

	private Text mText;
	private Button mBtn;

	void Start () {

		mText = transform.Find ("Text").GetComponent();
		mBtn = transform.Find ("Button").GetComponent <Button>();
		mBtn.onClick.AddListener(BtnClick);

		string name = UnityTest.Class1.GetString;
		mText.text = name;
	}

	public void BtnClick (){
		UnityTest.Class1 c = UnityTest.Class1.inset;
		mText.text = c.Test_Function();
	}
  }

 

新增 VS2013 - 專案 Fake  (.NET Framework 3.5)

 

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;

  namespace UnityTest
  {
    public class Class1
    {
        public Class1() { }

        private static Class1 _instance;
        private static readonly object _sync = new object();

        public static Class1 inset {
            get{
                lock (_sync){
                    if (_instance == null)
                        _instance = new Class1();
                }
                return _instance;
            }
        }

        public static string GetString {
            get{
                return "Fake-GetString";
            }
        }

        public string Test_Function(){
            return "Fake-Test_Function";
        }
    }
  }

 

 

VS2013 - 專案 Real  (.NET Framework 4.5)

  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Text;
  using System.Threading.Tasks;
  using Windows.UI.Notifications;
  using Windows.Data.Xml.Dom;

  namespace UnityTest
  {
    public class Class1
    {
        public Class1(){}

        private static Class1 _instance;
        private static readonly object _sync = new object();

        public static Class1 inset{
            get{
                lock (_sync){
                    if (_instance == null)
                        _instance = new Class1();
                }
                return _instance;
            }
        }

        public static string GetString{
            get{
                return "Real-GetString";
            }
        }

        public string Test_Function(){
            return "Real-Test_Function";
        }  
    }
  }

 

 

Build Fake 和 Real 產生  UnityTest.dll 和 UnityTest.pdb

複製假插件,路徑:Projects/UnityTest/Fake/Bin/Debug

UnityTest.dll 和 UnityTest.pdb 兩個檔案

Windows 假的插件放在

To Unity - Assets/Plugin

複製實體插件,路徑Projects/UnityTest/Real/Bin/Debug

UnityTest.dll 和 UnityTest.pdb 兩個檔案

如果是 Windows Store 插件放在

To Unity - Assets/Plugins/WAS

如果是 Windows Phone 插件放在

To Unity - Assets/Plugins/WP8 

WP_Plugin_01  

WP_Plugin_02  

Edtior View.

WP_Plugin_03  

Actual Device View.

 WP_Plugin_04  

歡迎光臨 ~ Eg 程式筆記的天堂

當你看完此篇文章,如果你覺得文章不錯
可以留下鼓勵的留言~
將是我的撰寫更多相關文章的動力

arrow
arrow
    文章標籤
    Unity WP Window Phone Plugin
    全站熱搜

    低調_Eg 發表在 痞客邦 留言(0) 人氣()