2016-09-19 63 views
0

之間複雜的數據類型,我一直試圖找到一種UWP應用程序和統一的腳本之間發送複雜數據類型的解決方案。具體來說,我有我的初創app.xaml.cs,即保存在設備和通信Azure的應用服務在不同的數據的初始化,但我似乎無法使團結的可用信息。我如何在統一腳本中訪問這些數據?解析UWP統一腳本

找遍四周,我來最接近的是ApplicationUri但不知道該如何分享UWP的信息。由於它與我在UWP並訪問Windows.Storage.ApplicationDataContainer時似乎不是相同的文件夾。

任何人都可以解釋我是如何從UWP特定的代碼,以統一的腳本共享數據?

回答

1

於任團結你的C#腳本,這樣做:

public class MyBridge 
{ 
    public static object MyThingToStore; 
} 

現在,在App.xaml.cs,這樣做:

MyBridge.MyThingToStore = ....; 

雖然我的例子顯示了該怎麼辦呢對於基本的對象類型,它應該適用於大多數的東西。您也可以調用任何公共方法,但請注意,默認情況下您位於App.xaml.cs文件中的另一個線程中。如果你想在App.xaml.cs統一線程上執行代碼,這樣做:

appCallbacks.InvokeOnAppThread(() => 
{ 
    // Code to execute on Unity's main thread. 
}, false); 
+0

是,將工作,但需要靜態變量。這不可能像使用appressources或seralize對象並在腳本中反序列化? 是否有可能去的腳本參考,以不使用靜態變量 – JTIM

+0

有什麼不好靜,到底是什麼?你可以使用GameObject.Find找到你的遊戲對象,但對我來說這似乎是不必要的開銷。 – Sunius

+0

靜是在全球範圍內,當多個用戶訪問代碼,他們可以改變它,因此我對對象的狀態沒有保證。 'GameObject.Find'我認爲這隻能在統一腳本中使用,而不能在UWP代碼中使用,因爲'GameObject'永遠不會被實例化。但有可能使用它? (我會嘗試當我再次做這個項目時)。 – JTIM