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へ・・・続くのです(かな?)
ではでは。。