[Unity] transform.position: GameObject の移動

オブジェクトを移動させるにはtransform.positionを使い
Vector3で位置を設定することでObjectが移動します。
 
ボタンをクリックするとGameObjectが移動する例です。
 

Unity 2018.1




GameObjectの移動

 
ここではGameObjectの移動と合わせて、Button UIのCanvasを「Screen Space – Camera」での設定を使ってみたいと思います。
 
GameObjectを移動させるためはスクリプトで transform.position に Vector3 (x, y, z) を設定することでpositionを変えて移動させることができます。
 

 

 

Buttonの設定

 
「UI」から「Button」を選択します
 
object-trans_02
 
Button とCanvas, EvenSystem が生成されました。Buttonの名前テキストを設定するTextも一緒に作成されています。
 
object-trans_03
 
ただ、デフォルトのSceneでは見えないかもしれません。
 

Unityではテキストや画像、ボタンなどを画面に表示するための領域をCanvasと言います。これは他の3D Objectとは設定が異なります...

ここにCanvasの設定が3種類ありますが、「Screen Space – Camera」を使います。

  • Render Mode : Screen Space – Camera
  • Render Camera はデフォルトであるMain Camera
  • Plane Distance を「10」に設定。

object-trans_06
 
Button 位置をInspectorで[0, 0, 0] に調整します
 
object-trans_05
 
一例ですがこのような見え方で進めたいと思います。
 
object-trans_07

 

GameObjectの作成

 
移動させるGameObjectとしてSphereを置きます。Buttonの文字が逆ですが、カメラの裏側になるのでこうなります。
 
object-trans_08
 
SceneからGame画面にするとこのようになります。
 
object-trans_09

 

Button Clickのスクリプト

 
前出ですが、GameObjectの位置は

このx,y,zで設定できますので、これを利用してスクリプトを作ります
 
Project の Create から
「C# Script」でスクリプトファイルを作ります
 
ButtonClick.cs

 
このスクリプトファイルをHierarchyのButtonに
ドラッグ&ドロップします
 
button_05
 
Button の Inspector を見るとButton (Script)に
 
On Click()
List is Empty
 
というのがあるのでその下の「+」ボタンをクリック
 
button_06
 
List is Emptyのところに、None (Object)というのが表示されます。
その右の◉をクリックして出てきたダイアログから「Button」を選択します
 
button_07
 
次に、その隣にある「No Function」をクリックし、作成したスクリプトの名前の
ButtonClick からスクリプト内のメソッドBTonClick() を選択します。
 
button_09
 
Button の Inspector には
ButtonClick のobjを設定するようになっていますので
HierarchyからSphereをドラッグ&ドロップします
 
object-trans_10
 
これでボタンをクリックするとSphereが移動するようになりました。