今回は、あるオブジェクトに触れたら、触れたキャラクターが大きくなったり、小さくなったりする方法を学びます。
・まず、「Hierarchy」→「Create」→「3D Object」→「Cube」で新たにオブジェクトを1つ作成してください。
・名前は「ScaleChange」に変更してください。
・次に、スクリプト(台本)を作成します。
・「C# Script」を作成し、名前を「ScaleChange」に変更します。
・作成した「ScaleChange」スクリプトをダブルクリックします。
・下記のお手本を参考にコードを書いてみましょう。
using UnityEngine;
using System.Collections;
public class ScaleChange : MonoBehaviour {
// ★このメソッド(命令ブロック)を記載する
void OnTriggerEnter(Collider other){
other.gameObject.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
}
}
(ここがポイント!)
・これまで何度も登場してきた「OnTriggerEnter」の命令ブロックを使います。
・今回は、ぶつかったら「大きさ(Scale)」を変更するようなプログラムを書きます。
・「localScale」というのが、大きさを変更するためのプロパティになります。
・Vector3の数字を変えれば、大きさは自由に変更できます。ただし、数字を「小数」にする場合には必ず「f」をつけましょう。
・スクリプトが完成したら、ScaleChangeオブジェクトにドラッグ&ドロップする。
・最後に「Is Trigger」にチェックを入れるのも忘れずに!
(復習;音もつけてみよう)
ぶつかった時に、さらに効果音も追加してみましょう。
・「ScaleChange」スクリプトに下記のコードを追加します。
using UnityEngine;
using System.Collections;
public class ScaleChange : MonoBehaviour {
// ★★変数を定義する
public AudioClip scaleChange;
void OnTriggerEnter(Collider other){
other.gameObject.transform.localScale = new Vector3(0.3f, 0.3f, 0.3f);
// (復習)
// ★★下記に効果音を出すコードを記載しましょう。
// テキスト[7]コインをゲットしようを参考にする。
}
}
・効果音として使いたいデータは「Import New Asset….」でUnityの中に入れておきましょう。
・インポートした効果音データをドラッグ&ドラッグでセット。
・再生ボタンを押してみましょう。
オブジェクトに触れたら、効果音が鳴って、キャラクターの大きさが変わったら成功です。
(これも挑戦しよう!)
*オブジェクトの大きさを元に戻すことにも挑戦してみましょう。
