強火で進め

このブログではプログラム関連の記事を中心に書いてます。

クリックしたオブジェクトの方を向く


以下の様なイメージで構成。

黄色のCubeの組合せ → Player(砲台的なもの)
赤、緑、青のCube → ターゲット

ターゲットをクリックするとPlayerがその方向を向きます。

実際の動作はこちらで試せます。ソースコードこちら

ターゲットには以下のJavaScript
【ClickBehaviourScript.js】

private var playerBehaviourScript: PlayerBehaviourScript;

function Start () {
  var playerObj : GameObject = GameObject.FindWithTag("Player");
  playerBehaviourScript = playerObj.GetComponent(PlayerBehaviourScript);
}

function OnMouseDown () {
  var ray : Ray;
  var hit : RaycastHit;
  ray = Camera.main.ScreenPointToRay(Input.mousePosition);
  if (Physics.Raycast(ray, hit, 100)) {
    print(hit.collider.gameObject);
    playerBehaviourScript.TargetLookAt(hit.collider.gameObject.transform);
  }
}

Playerには以下のJavaScriptを設定
【PlayerBehaviourScript.js】

function TargetLookAt (target : Transform) {
	transform.LookAt(target);
}

ターゲットをクリックしたら OnMouseDown イベントが発生し、その中でPlayerのJavaScriptの TargetLookAt () を呼び、Playerを自分(ターゲット)の方を向かせます。