游戏开发记录--敌人追寻玩家

今天开始记录自己游戏开发的过程,算是自己的一个笔记吧。

首先让敌人追寻玩家的方法有三种。

第一种,玩家出现在敌人的视野内

简单的来说,就是当敌人“看见”玩家的时候(玩家出现在敌人的视野内),让敌人开始靠近玩家。

这种情况得先在敌人身上绑定一个摄像机,然后当摄像机内出现玩家,且出现的范围比较大的时候,让敌人开始追寻玩家。

unity中的体现
(具体在unity中的体现,α为摄像机与玩家之间的夹角)
当α角大于摄像机视野角的一半的时候,就认为敌人看到了玩家,并且进行追寻。

第二种,玩家的声音被敌人所“听到”

这种我在unity中不好表示出来,我画图出来表示

敌人听到玩家声音

第三种,玩家进入敌人的圆形侦测范围内

在这里插入图片描述
给敌人身上挂一个shere,然后取消掉Mesh Renderer组件,在OnTriggerEnter(Collider other)函数内进行判断和让敌人进行追寻

具体的实现代码片段如下

using UnityEngine;
using System.Collections;
using UnityEngine.AI;

public class EnemySight : MonoBehaviour {
   


private float seeAngle=120;//敌人视野角度
private bool isSeePlay = false;

private Vector3 lastPos;// 玩家的最后位置
    private Vector3 alermPos=Vector3.zero; //警报位置   

    private Animator anim;  //主角动画,作用是判断玩家是否在运动
    private SphereCollidersphereCollider;//敌人身上的碰撞器,该碰撞器是用来触发检测主角是否在敌人可见,可听范围内
    private NavMeshAgentnavMeshAgent; //AI组件  

    void Awake()
    {
   
        anim = GameObject.FindGameObjectWithTag(Tags.player).GetComponent
  • 14
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值