- GitHub项目地址
- 视频地址
- 游戏设计要求:
- 创建一个地图和若干巡逻兵(使用动画);
- 每个巡逻兵走一个3~5个边的凸多边型,位置数据是相对地址。即每次确定下一个目标位置,用自己当前位置为原点计算;
- 巡逻兵碰撞到障碍物,则会自动选下一个点为目标;
- 巡逻兵在设定范围内感知到玩家,会自动追击玩家;
- 失去玩家目标后,继续巡逻;
- 计分:玩家每次甩掉一个巡逻兵计一分,与巡逻兵碰撞游戏结束
程序设计要求:
- 必须使用订阅与发布模式传消息
-----
实现的游戏规则:游戏规则非常简单,玩家通过控制来摆脱巡逻的小兵获得加分,被抓住了游戏就结束了。
巡逻兵的设计:
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class IPatrol : MonoBehaviour {
private Vector3 nextPoint;
public List<Vector3> patrolPoints;
public bool isEnabled = false;
public int curPointIndex;
public float speed = 1.0f;
public bool dropOff = false;
public Transform chasePlayer;
public bool discover = false;
public Action<IPatrol, Transform> OnDiscoverPlayer;
public Action<IPatrol> OnCatchPlayer;
public Action<IPatrol> OnDropPlayer;
public IPatrol SetFromData(IPatrolData data) {
patrolPoints = data.patrolPoints;
speed = data.speed;