2016-07-30 8 views
0

Xamarin.iOSフレームワーク内のC#で書かれた小さなコードサンプルを、テクスチャアトラスをプリロードしてもらえますか?Xamarin.iOSでテクスチャアトラス(SKTextureAtlas)をプリロードする方法(C#)

そのウェブページ上https://developer.xamarin.com/api/type/MonoTouch.SpriteKit.SKTextureAtlas/

が、彼らはテクスチャアトラスをプリロード多くのメソッドをリスト:

Xamarinのウェブサイトは、このページがあります。私は両方の方法は、のために働くだろうと思いPreloadTexturesAsync(SKTextureAtlas [])

PreloadTextures(SKTextureAtlas []、NSAction)

:しかし、私はこれらの2つの具体的な方法に興味を持っています私のゲーム。残念ながら、Xamarin.iOSフレームワーク内でC#で正しく呼び出す方法がわかりません。

Web上でテクスチャアトラスをプリロードするためのコードサンプルが多数ありますが、これらのサンプルはObjective-Cで記述されていますが、残念ながらObjective-CコードをC#コードに変換する方法はまだわかりません。

上記の2つの方法を使用して、Xamarin.iOSフレームワーク内の小さなコードサンプルをC#でテクスチャアトラスをプリロードする方法を私に示すことができたら大変感謝します。

ありがとうございました。

答えて

1

私はゲーム開発の専門家でも以前に関わったことはありませんが、私はObjective-CコードをXamarin C#コードに「翻訳」するようにXamarin.iOSを熟知しています。あなたは「テクスチャアトラス」配列

var textureCollection = new SKTextureAtlas[] 
{ 
    SKTextureAtlas.FromName("firsttexturename"), 
    SKTextureAtlas.FromName("secondtexturename"), 
}; 
await SKTextureAtlas.PreloadTexturesAsync(textureCollection); 
// rather than using a completion handler like in ObjC xamarin uses the c# 5's await keyword to achieve similar functions 
//You can do what you want after it has preloaded here 
//for example 
this.StartScene() 
+0

を作成する必要が

まず、あなたの優秀な答えをありがとうございました。私はあなたのコードを今日試してみるでしょう、そしてそれは "答えられました"とマークします。ところで、私は完了ハンドラ "PreloadTextures(SKTextureAtlas []、NSAction)でメソッドを使用するかどうか、私はまだプリロードが進行中にテキストメッセージを印刷するなどのいくつかの他のことを行うことができます意味ですか?または、プリロードがまだ進行中のときにコード内で他に何もできないことを意味しますか? (もう一度お返事ありがとうございます) – Thanh

+0

Appleのマニュアルで読んだことから、このメソッドはバックグラウンドで実行されます.xamarinの非同期メソッドは単にそのラッパーであり、NSActionコールバックを使用できない理由はありません機構。また、Task.ContinueWithを使用してC#の世界にとどまることもできます。 –

+0

あなたの説明は間違いありません。 C#とiOSのすべての非同期/待機メソッドは、バックグラウンドでのみ実行され、プログラムやアプリケーションのフローをブロックしません。私は今日あなたのコードを試して、それは完璧に動作します。それはすてきです。手伝ってくれてどうもありがとう。 (Stackoverflowは素晴らしいフォーラムです:-)) – Thanh

関連する問題