Unity3d Homework6——智能巡逻兵

该博客介绍了如何在Unity3d中创建智能巡逻兵,包括巡逻路径设置、碰撞检测、目标追击和游戏规则。巡逻兵采用订阅发布模式传递消息,当发现玩家时会自动追击,而玩家需躲避巡逻兵以得分。游戏结束条件为玩家与巡逻兵碰撞。此外,博客提供了相关的代码实现和游戏设计细节。
摘要由CSDN通过智能技术生成
  • 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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值