动画部分
首先是玩家的动画控制器:
巡逻兵的动画控制器:
运行时场景
预制
patrol的设置:
player的设置:
Plane的设置:
Plane的子对象也做了不少设置,这里不再详细给出。
Trigger的设置:
代码部分
在预制部分,我们看到Trigger和patrol里面都挂载了ColiAction这个脚本,来实现玩家与巡逻兵碰撞时的通知:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ColiAction : MonoBehaviour
{
FirstSceneController sceneController;
GameObject myobject = null;
GameObject player;
public delegate void AddScore();
public static event AddScore myAddScore;
public delegate void GameOver();
public static event GameOver myGameOver;
private void Start()
{
sceneController = SSDirector.getInstance().currentSceneController as FirstSceneController;
player = sceneController.player;
}
private void OnTriggerEnter(Collider other)
{
if (other.gameObject == player)
{
int k = this.name[this.name.Length - 1] - '0';
myobject = sceneController.patrols[k];
foreach (var i in sceneController.actionManager.seq)
{
if (i.gameObject == myobject)
{
i.enable = false;
Vector3 a = new Vector3(myobject.transform.position.x, 0, myobject.transform.position.z);
Vector3 b = new Vector3(player.transform.position.x, 0, player.transform.position.z);
Qua