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

こんにちは。川上です。
暖か〜い日がなってきました。小生んチの近くにあった桜が満開でした。
 散歩して桜を見ている時期は、良いもんです。
 葉っぱもない枝の先に、蕾が付いてきて、直に花が咲きだす桜を見てるいると、なんか変な木だなぁとただ単純に思ってしまいます。
この週末頃には、花見をする方々が多いのなかぁ。。
ざっと2、3週間ですかな。淡い白ピンク色の中に、徐々に若緑色がチラバラに染ってくる。
 緑葉がエリアが増えてきながら、桜エリアが頑張って意地している頃のバランスは、また、良いもんです。
 ??=・=・=??
まずは、画面にXYZ矢印のButtonを作成して表示しました。
?Buttonを作成している箇所( initNaviButton())で組み込みました。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |     // 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へ・・・続くのです(かな?)
ではでは。。


