游戏蛮牛学习群(纯技术交流,不闲聊):959392658
游戏蛮牛 手机端
开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

项目源码

关注:1445

当前位置:游戏蛮牛 资源专区 项目源码

查看: 1170|回复: 16

[Unity] 简单敌人AI、巡逻

[复制链接]  [移动端链接]
5熟悉之中
818/1000
排名
2937
昨日变化
1

9

主题

48

帖子

818

积分

Rank: 5Rank: 5

UID
199915
好友
1
蛮牛币
3069
威望
0
注册时间
2017-1-8
在线时间
277 小时
最后登录
2018-12-10
发表于 2018-7-10 10:41:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x
1.需要定义最大最小移动速度,最大最小移动时间,最大最小停止时间。
2.巡逻人会走一会,停下来呆一会,再随机选方向继续走一会;如果巡逻人的前方有路障(根据射线判定),则会按照所给角度不断转向,直到没有障碍为止继续向前走。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Patral : MonoBehaviour {
        /// 巡逻
        /// 1.走一会停下一会
        /// 2.选择随机方向接着走
        /// 3.遇到墙或者玩家向后圆滑转向
        public float MinMoveSpeed,MaxMoveSpeed;
        public float MinMoveTime,MaxMoveTime;
        public float MinIdleTime,MaxIdleTime;
    //遇到障碍一次旋转的角度
    public float ObstacleRotateSpeed=30;

        float currentMoveTime;
        float currentIdleTime;
        float currentMoveSpeed;

        Quaternion currentRotation=Quaternion.identity;

        float timer;
        void Start () {
                Reset ();
        }

        void Update () {
                timer += Time.deltaTime;
                if (timer<currentMoveTime) {
                        Move ();
                        Rotate ();
                }
                if (timer >currentMoveTime &&timer <currentMoveTime +currentIdleTime) {
                        Idle ();
                }
                if (timer >currentMoveTime +currentIdleTime) {
                        Reset ();
                        timer = 0;
                }
                RayTesting ();
        }
        Ray ray;
        RaycastHit hit;
        void RayTesting(){
                ray = new Ray (transform.position +transform.up*0.3f,transform.forward);
                Debug.DrawRay (transform.position +transform.up*0.3f,transform.forward,Color.blue);
                if (Physics.Raycast (ray,out hit,1)) {
            //此处的标签可以自定义我用的是射线检测。
                        if (hit.transform.CompareTag("wall")||hit.transform.CompareTag ("Player")) {
                                currentRotation.eulerAngles += new Vector3 (0, ObstacleRotateSpeed, 0);
                        }
                }
        }
        void Move(){
                transform.Translate (0,0,Time.deltaTime*currentMoveSpeed,Space.Self);
        }
        void Idle(){
                currentMoveSpeed = 0;
        }
        void Rotate(){
                if (currentRotation !=transform.rotation) {
                        transform.rotation = Quaternion.Lerp (transform.rotation,currentRotation,Time.deltaTime*5);
                }
        }
        void Reset(){
                currentMoveSpeed = Random.Range (MinMoveSpeed,MaxMoveSpeed);
                currentRotation.eulerAngles=new Vector3 (0,Random.Range (0,360),0);
                currentMoveTime = Random.Range (MinMoveTime,MaxMoveTime);
                currentIdleTime = Random.Range (MinIdleTime,MaxIdleTime);
        }
}



回复

使用道具 举报

6蛮牛粉丝
1162/1500
排名
1796
昨日变化
9

8

主题

175

帖子

1162

积分

Rank: 6Rank: 6Rank: 6

UID
131585
好友
0
蛮牛币
2491
威望
0
注册时间
2015-12-13
在线时间
265 小时
最后登录
2018-12-9
发表于 2018-7-11 09:52:43 | 显示全部楼层

回复

使用道具 举报

7日久生情
2634/5000
排名
2621
昨日变化

0

主题

1760

帖子

2634

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
258739
好友
0
蛮牛币
5211
威望
0
注册时间
2017-12-9
在线时间
342 小时
最后登录
2018-10-23
发表于 2018-7-11 10:46:05 | 显示全部楼层
看起来很不错,感谢楼主分享!!!
[发帖际遇]: hm_nie 捡了钱没交公 蛮牛币 降了 3 . 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

排名
24807
昨日变化
2

0

主题

22

帖子

50

积分

Rank: 2Rank: 2

UID
288418
好友
0
蛮牛币
46
威望
0
注册时间
2018-7-3
在线时间
12 小时
最后登录
2018-7-18
发表于 2018-7-11 19:42:14 | 显示全部楼层
试试看 咯,好像不错

回复 支持 反对

使用道具 举报

5熟悉之中
646/1000
排名
3461
昨日变化
20

0

主题

97

帖子

646

积分

Rank: 5Rank: 5

UID
276682
好友
0
蛮牛币
1377
威望
0
注册时间
2018-4-11
在线时间
135 小时
最后登录
2018-12-9
发表于 2018-7-13 10:36:41 | 显示全部楼层
感谢分享

回复

使用道具 举报

5熟悉之中
780/1000
排名
6049
昨日变化

9

主题

318

帖子

780

积分

Rank: 5Rank: 5

UID
285521
好友
0
蛮牛币
1258
威望
0
注册时间
2018-6-12
在线时间
227 小时
最后登录
2018-12-5
发表于 2018-7-13 13:29:10 | 显示全部楼层
添加边界的话添加到那个函数里呢?

回复 支持 反对

使用道具 举报

7日久生情
2634/5000
排名
2621
昨日变化

0

主题

1760

帖子

2634

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
258739
好友
0
蛮牛币
5211
威望
0
注册时间
2017-12-9
在线时间
342 小时
最后登录
2018-10-23
发表于 2018-7-14 11:42:34 | 显示全部楼层
看起来很不错,感谢楼主分享!!!
[发帖际遇]: hm_nie 乐于助人,奖励 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

7日久生情
3221/5000
排名
217
昨日变化
1

1

主题

351

帖子

3221

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
7133
好友
0
蛮牛币
2888
威望
0
注册时间
2013-11-4
在线时间
807 小时
最后登录
2018-12-10
发表于 2018-7-14 12:29:17 | 显示全部楼层
简单敌人AI、巡逻好

回复 支持 反对

使用道具 举报

排名
34036
昨日变化
7

0

主题

7

帖子

23

积分

Rank: 1

UID
105074
好友
0
蛮牛币
19
威望
0
注册时间
2015-6-2
在线时间
9 小时
最后登录
2018-8-12
发表于 2018-7-15 17:34:10 | 显示全部楼层
谢谢分享

回复

使用道具 举报

4四处流浪
355/500
排名
5635
昨日变化
2

0

主题

23

帖子

355

积分

Rank: 4

UID
264005
好友
0
蛮牛币
781
威望
0
注册时间
2018-1-11
在线时间
94 小时
最后登录
2018-9-25
发表于 2018-7-16 09:34:32 | 显示全部楼层
挺不错的,把每个移动状态切换判断
[发帖际遇]: 越过山丘 在论坛发帖时没有注意,被小偷偷去了 2 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

排名
46919
昨日变化
108

0

主题

22

帖子

34

积分

Rank: 1

UID
261896
好友
0
蛮牛币
32
威望
0
注册时间
2017-12-30
在线时间
8 小时
最后登录
2018-10-14
发表于 2018-7-21 23:11:24 | 显示全部楼层
谢谢分享

回复

使用道具 举报

排名
38864
昨日变化
5

0

主题

18

帖子

41

积分

Rank: 1

UID
291197
好友
0
蛮牛币
39
威望
0
注册时间
2018-7-25
在线时间
18 小时
最后登录
2018-9-20
发表于 2018-7-25 17:09:18 | 显示全部楼层
感谢楼主分享!!!

回复

使用道具 举报

7日久生情
1648/5000
排名
3241
昨日变化

2

主题

881

帖子

1648

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
209046
好友
0
蛮牛币
2360
威望
0
注册时间
2017-3-30
在线时间
323 小时
最后登录
2018-12-10
发表于 2018-7-27 19:17:50 | 显示全部楼层

回复

使用道具 举报

5熟悉之中
722/1000
排名
6286
昨日变化

4

主题

308

帖子

722

积分

Rank: 5Rank: 5

UID
191995
好友
1
蛮牛币
1594
威望
0
注册时间
2016-12-13
在线时间
192 小时
最后登录
2018-12-1
发表于 2018-7-31 10:51:00 | 显示全部楼层

回复

使用道具 举报

4四处流浪
355/500
排名
8942
昨日变化
1

1

主题

122

帖子

355

积分

Rank: 4

UID
246298
好友
2
蛮牛币
602
威望
0
注册时间
2017-9-27
在线时间
106 小时
最后登录
2018-8-9
发表于 2018-8-8 18:17:45 | 显示全部楼层
简单明了,找找感觉

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表