【進行方向を向かせる】まずジョイスティックを作る🐼ジョイスティックの見た目を作るまずはジョイスティックの実装からします。Unityを開き、ヒエラルキーでCreate>UI>Imageでキャンバスとイメージを作ります。ジョイスティックは丸いので、丸い画像をセットしたいです。ここではデフォルトで入ってる画像にKnobという名前の丸い画像があるのでそれを付けます。丸い画像がある人はそれをセットすると良いと思います。サイズは、ここではwidthとheightを300にしておきます。画像のセット次に、今作ったImage子に今度はImageではなくButtonを作り、同じく丸い画像をセットします。サイズは、widthとheightをそれぞれ150くらいにしておきました。今のとここんな感じです↓↓こんな感じ🐼これを動くようにしていきます。新しいスクリプトを作りJoyStickという名前にします。以下のスクリプトを貼り付けます。}}このスクリプトをButtonのインスペクターにドラッグアンドドロップでセットします。セットしたら、インスペクタからRadiusの値を決めます。このRadiusは、ジョイスティックの可動範囲の値です。ジョイスティックのサイズによって変わってきますが、ここでのサイズ(ベースが300、スティックが150のサイズ)だとRadius30と79で以下のような違いになります。Radius30(左)とRadius79(右)ジョイスティックのサイズによって変わってくるので、Buttonを移動させてみてちょうどいい位置の値を入れるようにしてください。Triggerをセットします。JoyStick>Dragに設定します。_defaultPos;}ButtonのPointerUPのイベントトリガーに設定している関数です。Start()でボタンの初期位置を代入した_defaultPosをジョイスティックのポジションに入れています。【ドラッグ時の挙動】まずジョイスティックのトランスフォームにマウスの値を入れています。その値をCalculateDistに渡して帰ってきた値をmoveDistに入れます。CalculateDist(_joyStick.transform.position);CalculateDistはデフォルトの位置から現在のジョイスティックの位置までの距離を計算しています。三平方の定理っていうやつです。c^2で求めたい部分を計算しています。(PhotoShop完全に理解した)三平方の定理で距離を求めるそして距離が返ってきたら、返ってきた距離が_radiusに入れた値よりも大きければそれ以上移動しないようにします。ボタンは円形なので、円形に可動限界値を求めなければいけません。limitedPosition;}Atan2(アークタンジェント)はXとYを渡すとθが返ってきます。y)を結んだ直線とx軸の角度(tanθ)がラジアンの値で返ってきます。Atan2はθが返ってくるこの値をMathf.Cos()に渡すとCosθが返ってきて、Mathf.Sin()に渡すとSinθが返ってきます。それに_radiusの数字を掛けてあげることで、_radiusの半径サイズの円周上でのジョイスティックの可動限界値を求めることができます。円周上の位置を求めるそして最後にジョイスティックのローカルポジションの値を、Positionに代入しています。ポジションB)で求められるとのこと。CaluculateDistの中身、距離を求める部分はこれだけでいけるみたいです!便利。dist;}2円形に可動範囲を求めた部分は、方向が分かっていればそのベクトルを正規化して半径かければ簡単にリミット求められるとのこと。次はジョイスティックの動きに合わせてオブジェクトを動かします。シーンに動かしたいオブジェクトを入れます。ジョイスティックは真ん中にあると邪魔なので移動させて、カメラもいい感じの位置にしました。ゲーム画面こんな感じ進行方向をZ軸方向に向くようにします。モデルの進行方向がZ軸を向いてない場合は、空のゲームオブジェクトの子にして子オブジェクトのZ軸方向に向くようにします。進行方向(Z軸方向)を見るおまる(かわいい)新しいC#スクリプトを作り、MovingObjという名前にして以下をスクリプトに貼り付けます。}}このスクリプトを動かしたいオブジェクトに付けて(空のゲームオブジェクトの子にオブジェクトを入れた場合は空のゲームオブジェクトの方につける)、インスペクタからJoyStickの所に最初に作ったジョイスティックのボタンをドラッグアンドドロップします。Speedを設定します。ここでは0.1にしておきます。【動かす】y軸は動かないように、x軸とz軸にジョイスティックのPositionの値の方向に進むように加算しています。speedを掛けることで速さを変えています。現在のジョイスティックの位置からデフォルトの位置を引くことで、その方向が算出されるので、それをDirectionに入れてその値をMovingObjの方で使用しています。}その方向を単純にxとzに入れてあげて、transform.forward(z軸方向)がそちらを向くようにしています。Foundationでマーカーを使用する方法。はてなブログProアイドルになりたいと思いながら死んだ顔で仕事をするプログラマー。めーぷるしろっぷをちょんちょんしています。LSDJについての記事を書きます。(1)リンクはてなブログブログをはじめる週刊はてなブログはてなブログProスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。