Unity3DとSwiftでiOSプログラミング~gameObjectの移動〜Swift分_その1

こんにちは。川上です。
暖か〜い日がなってきました。小生んチの近くにあった桜が満開でした。
散歩して桜を見ている時期は、良いもんです。
葉っぱもない枝の先に、蕾が付いてきて、直に花が咲きだす桜を見てるいると、なんか変な木だなぁとただ単純に思ってしまいます。
この週末頃には、花見をする方々が多いのなかぁ。。
ざっと2、3週間ですかな。淡い白ピンク色の中に、徐々に若緑色がチラバラに染ってくる。
緑葉がエリアが増えてきながら、桜エリアが頑張って意地している頃のバランスは、また、良いもんです。
🌸🌸=・=・=🌸🌸
まずは、画面にXYZ矢印のButtonを作成して表示しました。

🏠Buttonを作成している箇所( initNaviButton())で組み込みました。

    // MARK: -⚡-----  initNaviButtonハンドラー
    //MARK: -- Button用のtag値
    static let SCENE_NAV_VW = 100       //Home
    static let BTNVW_BIZUM_UP_Y = 101   //Y軸UP
    static let BTNVW_BIZUM_DWN_Y = 102  //Y軸Down
    static let BTNVW_BIZUM_UP_X = 103   //X軸UP
    static let BTNVW_BIZUM_DWN_X = 104  //X軸Down
    static let BTNVW_BIZUM_UP_Z = 105   //Z軸UP
    static let BTNVW_BIZUM_DWN_Z = 106  //Z軸Down
    static var dispNaviFst = false      //表示BtnのFst確認用
    //MARK: --プラグイン経由  Scene用のButtonを表示
    static func initNaviButton(){
         print("**** プラグイン経由 -- Scene用のSwift作成Buttonの表示 ****")
        dispNaviFst = true //表示BtnのFst確認用
        //UnityのViewControllerの取得
        let unityViewController = UnityGetGLViewController();
         // === 既存作成Viewを検知して削除 ====
        let parView = unityViewController?.view;
        var saveVw = parView?.viewWithTag(GateInUnity.SCENE_NAV_VW)
        saveVw?.removeFromSuperview()
        //+++ GizomoBtnのtag
        let btnGzmTags:[Int] = [ BTNVW_BIZUM_UP_X,BTNVW_BIZUM_DWN_X,
                                 BTNVW_BIZUM_UP_Y,BTNVW_BIZUM_DWN_Y,
                                 BTNVW_BIZUM_UP_Z,BTNVW_BIZUM_DWN_Z,
                               ]
        // === 既存作成GizomoBtnを検知して削除 ====
        for tg in btnGzmTags {
            saveVw = parView?.viewWithTag(tg)
            saveVw?.removeFromSuperview()
        }
        // === MenuReturnBtnViewを生成. ====
        var myView: UIView!
        let height = 40;
        let myvwRect =  CGRect(x:0,
                               y:0,
                               width:Int((unityViewController?.view.frame.width)!),
                               height:  height);
        myView = UIView(frame:myvwRect);
        myView.tag = SCENE_NAV_VW
        //myView.backgroundColor = UIColor.brown //test
        //Menuボタンの表示する
        GateInUnity.makeMenuButton(myView);
        //unityViewにmyViewを追加する。
        unityViewController?.view.addSubview(myView);
        // ===== Gizumo Button setting =====
        let x_of = Int((unityViewController?.view.frame.width)!) / 10
        let y_of = Int((unityViewController?.view.frame.height)!) / 10
        //+++ GizomoBtn View
        var btnVwYup: UIView!
       //+++ GizomoBtnのRect
       let btnGzmRects:[CGRect] = [
            CGRect( x:Int((unityViewController?.view.frame.width)!) - x_of ,   // X_Up
                    y:Int((unityViewController?.view.frame.height)! / 2),
                    width:30,height: 30),
            CGRect( x:x_of,                                                    // X_dwn
                    y:Int((unityViewController?.view.frame.height)! / 2),
                    width:30,height: 30),
            CGRect( x:Int((unityViewController?.view.frame.width)! / 2),         // Y_Up
                    y:y_of,
                    width:30,height: 30),
            CGRect( x:Int((unityViewController?.view.frame.width)! / 2),         // Y_Dwn
                    y:Int((unityViewController?.view.frame.height)!) - y_of,
                    width:30,height: 30),
            CGRect( x:Int((unityViewController?.view.frame.width)!) - x_of * 2 ,   // Z_Up
                    y:y_of * 3,
                    width:30,height: 30),
            CGRect( x:x_of * 2 ,                                                   // Z_dwn
                    y:Int((unityViewController?.view.frame.height)!) - y_of * 3,
                    width:30,height: 30),
            ]
        //+++ GizomoBtnのpng名
        let btnGzmPngs:[String] = ["gizumo_x_up","gizumo_x_dwn",
                                   "gizumo_y_up","gizumo_y_dwn",
                                   "gizumo_z_up","gizumo_z_dwn",
                                   ]
        //enumulateでインデックスと要素のタプルを扱えるようにする
        for (index,vwrct) in btnGzmRects.enumerated() {
            print("\(index + 1)番目のVwのRectは\(vwrct)")
            // Viewを生成.
            btnVwYup = UIView(frame:vwrct);
            btnVwYup.tag = btnGzmTags[index]
//            btnVwYup.backgroundColor = UIColor.brown //test
            //makeGizumoButtonボタンの表示する
            GateInUnity.makeGizumoButton(btnVwYup,btnGzmPngs[index]);
            //unityViewにmyViewを追加する。
            unityViewController?.view.addSubview(btnVwYup);
        }
    }

 
XYZ矢印のButtonで処理する設定には、各ボタン毎に諸々で必要するデータには、
・tag値
・button用の位置とサイズデータ
・botton用に貼り付けるpng画像File名
(png画像Fileは、Unity側に組み込んでBuildするとXcodeに自動で置けれます)
=・=・=
LimitOverのようです。
この辺りで、その2へ・・・続くのです(かな?)

ではでは。。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)