(21)Unity3DとSwiftでiOSプログラミング~ シーンを作ろう【実装編4】
こんにちは。川上です。
UnityからiOSへ送信をした後なので、今回には、iOSからUnityに返信してみましょう。
UnityからiOSへの送信方法でしたのは、Plugin処理の方法でした。
コーディング言語を翻訳するには、
C# → ObjectiveC(C++) → Swift
での流れがありました。
C#側の送信からには、複数の引数を持った処理をSwiftに渡れています。
変数の型は、ObjectiveC(C++) でコンバートしてから、Swiftに渡れています。
一方、SwiftからC#の返信には、文字型の引数の1つのみを持ってのUnitySendMessage処理となります。
「StartScene」でiOS側で表示したメニューは、
let menuItems = [“シーン1″,”シーン2″,”シーン3″,”シーン4″,”シーン5”]
で、TableView()を持っています。
TableView()の選択した位置のデータを取得して、Unityに送信して、「Scene1」~「Scene5」のシーンを表示していくシーケンスとなります。
今のSwiftのコーディングは、Swift3.2で書いていますからね〜。
また、Swiftで書いた後は、Unity側へコピペを忘れずね。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | import Foundation import UIKit import GoogleMobileAds class NaniMenuViewController: UIViewController ,UITableViewDelegate, UITableViewDataSource{ ・・・・・ // MARK: --- ⚡ Cellが選択された際に呼び出される. func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { print("Value: \(menuItems[indexPath.row])") let retstr = String(format:"Scene%d",indexPath.row + 1) // unity側にSnapShatする. UnitySendMessage("StageScnes", "OnCallFromMenu", retstr) // MARK: ++++ ModalViewを閉じる。 self.navigationController?.dismiss(animated: true, completion: nil); } ・・・・・ } |
iOSからUnityから送信できる関数は、
// unity側にSnapShatする.
UnitySendMessage(“StageScnes”, “OnCallFromMenu”, retstr)
となります。
retstrが文字型の引数になります。
UnitySendMessage(“StageScnes”, “OnCallFromMenu”, retstr)
は
“StageScnes”のGameObjectが持っている”OnCallFromMenu”関数に、retstr を持って送れ
の話になっています。
“StageScnes”のGameObjectのスクリプトは、StartScene.csに組み込んでいます。
Unity側で受信した”OnCallFromMenu”関数で、シーン遷移をします。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | //StartScene.cs using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; // <--- シーン遷移用 public class StartScene : MonoBehaviour { ・・・ // Menu Choose Update --> OnCallFromMenu() public void OnCallFromMenu(string sceneStr) { Debug.LogFormat ("--> OnCallFromMenu(ceneStr = {0})", sceneStr); SceneManager.LoadScene (sceneStr); //シーン遷移 } ・・・ } |
で、選択したシーンで表示できたと思います。
次回は、シーン遷移後からメニューに戻れるようするお話へ、つ・づ・く(のつもり)・・です。
=・ー・=
ではでは。。