Presentation is loading. Please wait.

Presentation is loading. Please wait.

Unity, C# 移動するモデルの位置を 指定した位置へ自動修正

Similar presentations


Presentation on theme: "Unity, C# 移動するモデルの位置を 指定した位置へ自動修正"— Presentation transcript:

1 Unity, C# 移動するモデルの位置を 指定した位置へ自動修正
7月26日

2 青タイルをクリックしたままドラッグすると移動する
以前作成したマウスのドラッグでモデルを移動させるものを、 指定の範囲内にモデルが移動すると自動で位置を修正するようにする。 動作 操作 青タイルをクリックしたままドラッグすると移動する 白とピンクのタイル上のどこかで放す 位置を自動で修正し、タイルの1枚と重なる

3 まず右図のように Scale1×1のCubeを10個作成し色を付け並べる Cube1(0,0,0)、Cube2(0,0,1)、Cube3(0,0,2)・・・ としたとき頂点座標は右図になる

4 private static Vector3 pos; と、 void OnMouseUp() を追加し、 OnMouseDrop() 内に
にあるスクリプトに右の private static Vector3 pos; と、 void OnMouseUp() を追加し、 OnMouseDrop() 内に pos = currentPosition; を追加する。 Staticにすることで OnMouseDrop()と、OnMouseUp間で 値を共有できるようになる。 OnMouseUp()は ユーザーがマウスボタンを離したときに呼び出さる。 public class move : MonoBehaviour { private static Vector3 pos; void OnMouseUp() if (-0.5 <= pos.x && pos.x < 0.5){ if (-0.5 <= pos.z && pos.z < 0.5) transform.position = new Vector3(0, 0, 0); if (0.5 <= pos.z && pos.z < 1.5) transform.position = new Vector3(0, 0, 1); if (1.5 <= pos.z && pos.z < 2.5) transform.position = new Vector3(0, 0, 2); } if (0.5 <= pos.x && pos.x < 1.5) {   略 } if (1.5 <= pos.x && pos.x < 2.5) {   略 } 今回 pos を private な static 変数にしているためこのクラスでしか値を共有できない クラス外で値を共有し、できることを次回やる


Download ppt "Unity, C# 移動するモデルの位置を 指定した位置へ自動修正"

Similar presentations


Ads by Google