ソースはこちらで公開しています。
https://github.com/matsushima-terunao/unity-chan

実際のゲームはこちら
http://ter.dip.jp/blog_unity/unity-chan/build/web/web.html

敵の生成

敵を Prefab 化します。
 Hierarchy 上の bear を Assets に移動
 Hierarchy 上の bear を削除

MainScript

敵を生成を行う処理を追加します。
...
/** プレイヤー */
var player: GameObject;
/** 敵 */
var enemyPrefab: GameObject;
/** 敵 */
var enemies: GameObject[] = new GameObject[10];
...
function Start () {
	player = GameObject.Find("unitychan_dynamic_locomotion");
}

function Update () {
	// 敵生成
	for (var i: int = 0; i < enemies.length; ++ i) {
		if (null == enemies[i]) {
			var position: Vector3 = Vector3(
				player.transform.position.x + 10 * Mathf.Sin(player.transform.eulerAngles.y * Mathf.PI / 180) + 10 * Random.value - 5,
				0,
				player.transform.position.z + 10 * Mathf.Cos(player.transform.eulerAngles.y * Mathf.PI / 180) + 10 * Random.value - 5);
			var angle: Quaternion = Quaternion(0, Vector3.Angle(position, player.transform.position), 0, 1);
			enemies[i] = Instantiate(enemyPrefab, position, angle);
			break;
		}
	}
}
...

武器の追加

武器を追加します。Asset Store の Modern Weapons Pack を利用しました。今までと同様、Assets に Import します。
好きな武器を選んで、プレイヤーの右手(Character1_RightHand)にドロップします。



弾丸の追加

Sphere で弾丸を作成します。敵と同様に Prefab 化します。



UnityChanScript

弾丸を発射する処理を追加します。
...
/** 攻撃時刻 */
var attackTime: float = 0;
/** 弾丸時刻 */
var bulletTime: float = 0;
/** 弾丸 */
var bullets: GameObject[] = new GameObject[2];
/** 弾丸 */
var bulletPrefab: GameObject;
...
function Update () {
	var currentTime: float = Time.time;
	// 攻撃
	if (Input.GetButtonDown ("Fire1")) {
		animator.SetTrigger("Attack");
		transform.Find("Attack").gameObject.SetActive(true);
		attackTime = currentTime;
	}
	// 攻撃終了
	if (Time.time >= attackTime + 1) {
		transform.Find("Attack").gameObject.SetActive(false);
	}
	// 弾丸発射
	MainScript.Log("cou", bullets.length);
	if (currentTime - bulletTime >= 0.1) {
		for (var i: int = 0; i < bullets.length; ++ i) {
			if (null == bullets[i]) {
				bullets[i] = Instantiate(bulletPrefab, transform.position + transform.forward + transform.right * 0.2, transform.rotation);
				bullets[i].rigidbody.velocity = transform.forward * 10;
				Destroy(bullets[i], 1);
				bulletTime = currentTime;
				break;
			}
		}
	}
}
...

EnemyScript

敵が弾丸に当たったときの処理を追加します。
function OnCollisionEnter (collision: Collision) {
	MainScript.Log("enemy", collision.gameObject.name);
	if ("Attack" == collision.gameObject.name) {
		Damage();
	} else if ("Bullet(Clone)" == collision.gameObject.name) {
		Damage();
		Destroy(collision.gameObject);
	}
}

ここまでで再生してみます。
弾丸が敵にヒットして消えれば OK です。



ユニティちゃんライセンス

このアセットは、『ユニティちゃんライセンス』で提供されています。このアセットをご利用される場合は、『キャラクター利用のガイドライン』も併せてご確認ください。


← 3-3. Unity でユニティちゃんアクションゲームを作る - 当たり判定の追加
↑ 一覧