ゲームを作る6 敵のAI

こんにちは。

今回はunityで、簡単な敵のAIを作ります。

まず仮の敵オブジェクトを作ります。

GameObjectの3D ObjectのCubeを選択します。

次に、敵のオブジェクトを選択して、Add Componentをクリックして、Physicsをクリックします。

PhysicsのRigidbodyをクリックして、重力を追加します。

次にRigibodyの中のConstraintsのFreeze RotationのXとYとZにチェックを入れます。

(Freeze Rotationが表示されてないときは、Constraintsをクリックすると出ると思います。)

次に、判定用のオブジェクトを作ります。

いつものようにGameObjectの3D ObjectのCubeを選択します。

次に、さっき追加した、判定用のオブジェクトを敵オブジェクトに、ドラッグアンドドロップします。

次に、判定用のオブジェクトのBox ColliderのIs Triggerのチェックを入れます。

そして、Mesh Rendererのチェックを外します。

そして、TransformのPositionのXとYとZを0にします。

次に、ScaleのXとYとZを3から5くらいにします。

Assetsを右クリックして、CreateのC# Scriptを二個追加します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript2 : MonoBehaviour {
	//上のNewBehaviourScript2は名前
	public bool hantei = false;
	void OnTriggerStay (Collider enemy)
	{
		
		if (LayerMask.LayerToName(enemy.gameObject.layer) == "player")
		{
			hantei = true;
		}
	}
	void OnTriggerExit (Collider enemy)
	{
		if (LayerMask.LayerToName(enemy.gameObject.layer) == "player")
		{
			hantei = false;
		}
	}
}

上のpublic class NewBehaviourScript2 : MonoBehaviourのNewBehaviourScript2 はスクリプトの名前で、人によって違います。

void OnTriggerStay (Collider enemy)は、オブジェクトが入ったら動く。

void OnTriggerExit (Collider enemy)は、オブジェクトが、出たら動く。

if (LayerMask.LayerToName(enemy.gameObject.layer) == “player")は、オブジェクトのレイヤーが、

playerだったら動く。

主人公オブジェクトのLayerをクリックして、Add Layerをクリックします。

Playerを追加します。

もう一つのスクリプトを書きます。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class NewBehaviourScript3 : MonoBehaviour {
	//上のNewBehaviourScript3は名前
	public NewBehaviourScript2 NewBehaviourScript2;
	public GameObject player;
	public float speed = 0.05f;
	// Use this for initialization
	void Start () {
		
	}
	
	// Update is called once per frame
	void Update () {
		if (NewBehaviourScript2.hantei == true) {
			this.transform.LookAt (player.transform);
			this.transform.Translate (0f, 0f, speed);
		}
	}
}

public class NewBehaviourScript3 : MonoBehaviourのNewBehaviourScript3は名前です。

public NewBehaviourScript2 NewBehaviourScript2;は、スクリプトの名前です。

今回の最初に書いたスクリプトを判定用オブジェクトにドラッグアンドドロップして、追加します。

次に、敵本体に次に作ったスクリプトをドラッグアンドドロップします。

そして、スクリプトのnew beha…に判定用オブジェクトを入れます。

次に、playerに、主人公オブジェクトを入れます。

Playを押して、敵に近づきます。

そしたら、敵が、主人公の方に、近づきます。