大阪市中央区 システムソフトウェア開発会社

営業時間:平日09:15〜18:15
MENU

Unity3DとSwiftでiOSプログラミング~Swift からUnityへのUnitySendMessage()〜gameObjectの移動

株式会社クローバーフィールドの経営理念
著者:川上洋
公開日:2018/08/28
最終更新日:2018/08/28
カテゴリー:雑記
タグ:

こんにちは。川上です。

「次回分は、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()での処理になります。

// 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で
受信にいきます。

	// ギズモ移動の更新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でガリガリ作くるのが小生のタイプなんで。。

ではでは。

    上に戻る