Unity3DとSwiftでiOSプログラミング~Swift からUnityへのUnitySendMessage()〜gameObjectの移動
こんにちは。川上です。
「次回分は、SwiftでUnity側が受信した処理の諸々へと。。」
への、少〜し前からの続きです。
シーケンスの言語を翻訳したザックリの流れです。
・UnityからiOSへのMesssage連絡の経路
<Unity側> <iOS側>
C# ーー> Objective-C++ ーー> Swift
・iOS(Swift) からUnityへのMessage。
<iOS側>
・UnitySendMessage( ) <Unity側>
Swift ーーーーーーーーーーーーーー> C#
Unityの画面上には、Swiftでオーバーレイ上にホームボタンや矢印操作ボタンを作成して表示しています。
で、矢印操作ボタンの押下イベントで、SwiftからMesasageを送信してUnity側で受信して「babyCu」GameObjectを上下左右を移動させています。
UnityへのMessage送信は、UnitySendMessage()での処理になります。
1 2 3 4 5 6 7 8 9 | // MARK: onClickGizumoBtn ーーー onClickGimsBtnの選択 static func onClickGizumoBtn(sender: UIButton){ print("--- onClickGizumoBtn: ---- sender.tag = \(sender.tag)") let retstr = String(format:"%d",sender.tag) // unity側にbabyCuに送信する. UnitySendMessage("StageScnes", "OnCallFromGizumo", retstr) } |
受信するUnityへは、
ここでのシーンでは、「Scene1」シーン内の「SatgeScnes」GameObgectに組み込んだStartScene.csで
受信にいきます。
1 2 3 4 5 6 7 8 9 10 | // ギズモ移動の更新Update --> OnCallFromGizumo() public void OnCallFromGizumo(string sceneStr) { Debug.LogFormat ("--> OnCallFromGizumo_2(ceneStr = {0})", sceneStr); // 別のオブジェクト(Sphere)のスクリプトを参照する場合 BabyCuScrpt d1 = babyCu.GetComponent<BabyCuScrpt>(); d1.OnCallFromGizumoBabuCu(sceneStr); } |
ここで受信処理をして、その後、「babyCu」GameObjectへ動かす処理へ遷移していくのでした。。。
多分、Unity内では、uGUIでボタンの表示&処理するのが’普通かもですが、UI絡みは、Swiftでガリガリ作くるのが小生のタイプなんで。。
ではでは。