強火で進め

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

付属の資料でスクリプトの基礎を勉強(2) - 親子関係

前回からの続き。

スポットライトの作成

1. メニューから GameObject -> Create Other -> Spotlight を選択。
2. InspectorビューのPositionの値を X=4.819539, Y=52.01972, Z=-38.90706 にRotationのXの値を90に設定。

新しいプログラム(JavaScriptファイル)の作成

1. メニューから Assets -> Create -> Javascript を選択。
2. Projectビューの NewBehaviourScript を Follow にリネーム。
3. その Move1 をダブルクリックし、表示されるエディタで以下の様に記述。

var target : Transform; 

function Update () { 
	transform.LookAt(target); 
} 

4. ショートカットCmd+Sでプログラムを保存。

スポットライトにプログラムを割当て

Spotlight に Follow をドラッグして割り当てます。

カメラとスポットライトに親子関係を設定

Spotlight を Main Camera にドラッグします。これで Main Camera の子として Spotlight が設定されます。

動作テスト

Cmd+P で実行して動作テストをします。前回と同様にキーで操作するとカメラの移動しますが今回はそれに追従してスポットライトが移動するのが確認できるかと思います。

親要素のカメラが移動すると子要素のスポットライトは一緒に移動するというルールになります。

先ほど設定したプログラムでは実は var target : Transform; の値の設定をしていませんでした。次はその注視点の設定を行います。

設定するプログラムの作成

1. メニューから Assets -> Create -> Javascript を選択。
2. Projectビューの NewBehaviourScript を Switch にリネーム。
3. その Move1 をダブルクリックし、表示されるエディタで以下の様に記述。

var switchToTarget : Transform; 

function Update () { 
	if (Input.GetButtonDown("Jump")) 
	GetComponent(Follow).target = switchToTarget; 
} 

※"Jump"となっているのは本来はジャンプ用のものを使用しているためです。少ない記述で作成出来る様にこのような流用をしているようです。
4. ショートカットCmd+Sでプログラムを保存。

プログラムの割当て

1. Spotlight に Switch をドラッグして割り当てます。
2. Spotlight を選択し、Inspectorビューの Switch プログラムのパラメータ Switch To Target に Cube を選択します。

動作テスト

Cmd+P で実行して動作テストをします。カメラを移動している途中でスペースを押すとそれ以降はスポットライトの注視点(照らす方向)が Cube になる事が確認できます。

取りあえず今回はここまで、次回に続きます。