今回は、あるオブジェクトに触れたら、触れたキャラクターが大きくなったり、小さくなったりする方法を学びます。
・まず、「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の中に入れておきましょう。
・インポートした効果音データをドラッグ&ドラッグでセット。
・再生ボタンを押してみましょう。
オブジェクトに触れたら、効果音が鳴って、キャラクターの大きさが変わったら成功です。
(これも挑戦しよう!)
*オブジェクトの大きさを元に戻すことにも挑戦してみましょう。