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

扫一扫,访问微社区

开发者专栏

关注:2332

当前位置:游戏蛮牛 技术专区 开发者专栏

__________________________________________________________________________________
开发者干货区版块规则:

  1、文章必须是图文形式。(至少2幅图)
      2、文章字数必须保持在1500字节以上。(编辑器右下角有字数检查)
      3、本版块只支持在游戏蛮牛原创首发,不支持转载。
      4、本版块回复不得无意义,如:顶、呵呵、不错......【真的会扣分的哦】
      5、......
__________________________________________________________________________________
查看: 944|回复: 21

[杨显峰讲师] Navmeshagent与飞行

[复制链接]  [移动端链接]
排名
7507
昨日变化
1

11

主题

54

帖子

388

积分

Rank: 9Rank: 9Rank: 9

UID
92284
好友
5
蛮牛币
1404
威望
0
注册时间
2015-4-15
在线时间
141 小时
最后登录
2017-12-4
发表于 2017-11-14 21:33:30 | 显示全部楼层 |阅读模式

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

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

x
先看看效果图:
1.gif

一个是飞行的兵种,一个是步兵,同时向鼠标的点击点出发。
Navmesh实现步兵的寻路不是难事,在此略过不表,关键是飞行的兵种怎么实现。在这里先说说原理:
飞行的兵种不使用Navmesh功能,是直接移动到目的点。关键要解决的是如何保持兵种的飞行高度。这个解决的办法是从兵的点向下发一个射线,然后碰到物体,改变兵种的高度和碰到的物体一定的距离,这样就可以实现保持兵种的飞行高度。在上下的过程中,还可以用插值来让过程更加的连贯。
下面是兵种的控制代码:
[C#] 纯文本查看 复制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;

public enum MoveType
{
    Walk,
    Fly
}

public class Player : MonoBehaviour {

    public MoveType _MoveType;
    public float _Height;


    private NavMeshAgent agent;
    private Vector3 desPos;
    private bool flyBool = false;


    void Start () {
        agent = transform.GetComponent<NavMeshAgent>();
        if (_MoveType == MoveType.Fly) agent.enabled = false;
    }
	

	void Update () {
        if (Input.GetMouseButtonDown(0))
        {
            Move();
        }

        if (_MoveType == MoveType.Fly)
        {
            RaycastHit hit;
            if (Physics.Raycast(transform.position, -transform.up, out hit))
            {
                transform.position = new Vector3(transform.position.x, hit.point.y + _Height, transform.position.z);

            }
            if (flyBool)
            {
                transform.position = Vector3.MoveTowards(transform.position, desPos, Time.deltaTime *5);
                if (Vector3.Distance(transform.position, desPos) < _Height + 0.1f)
                {
                    flyBool = false;
                }
            }

        }


    }

    void Move()
    {

        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//在鼠标所在的屏幕位置发出一条射线
        RaycastHit hit;
        if (Physics.Raycast(ray.origin, ray.direction, out hit))
        {

            if (hit.collider.gameObject.tag == "Terrain")
            {//设置地形Tag为Terrain  
                switch (_MoveType)
                {
                    case MoveType.Walk:
                        agent.SetDestination(hit.point);
                        break;
                    case MoveType.Fly:
                        desPos = hit.point;
                        flyBool = true;
                        break;
                }
                      
                   
            }


        }
    }
}



具体的视频教学在:http://edu.manew.com/course/397

回复

使用道具 举报

7日久生情
2731/5000
排名
2917
昨日变化
13

2

主题

1841

帖子

2731

积分

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

UID
241666
好友
0
蛮牛币
10463
威望
0
注册时间
2017-9-6
在线时间
410 小时
最后登录
2018-10-22
发表于 2017-11-15 06:53:06 来自Mobile--- | 显示全部楼层
感谢分享

回复

使用道具 举报

5熟悉之中
513/1000
排名
8616
昨日变化

4

主题

251

帖子

513

积分

Rank: 5Rank: 5

UID
247659
好友
0
蛮牛币
1403
威望
0
注册时间
2017-10-9
在线时间
128 小时
最后登录
2018-9-12
发表于 2017-11-15 07:14:33 来自Mobile--- | 显示全部楼层
谢谢分享!!

回复

使用道具 举报

7日久生情
2025/5000
排名
2091
昨日变化

7

主题

718

帖子

2025

积分

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

UID
183904
好友
6
蛮牛币
4229
威望
0
注册时间
2016-11-15
在线时间
666 小时
最后登录
2018-10-19
QQ
发表于 2017-11-15 08:42:09 | 显示全部楼层
想法很给力

回复

使用道具 举报

排名
14107
昨日变化
5

0

主题

3

帖子

74

积分

Rank: 2Rank: 2

UID
239211
好友
0
蛮牛币
391
威望
0
注册时间
2017-8-23
在线时间
17 小时
最后登录
2017-11-27
发表于 2017-11-15 08:55:49 | 显示全部楼层
牛逼 哈哈哈哈哈哈哈哈哈哈

回复 支持 反对

使用道具 举报

7日久生情
1690/5000
排名
1499
昨日变化
1

3

主题

355

帖子

1690

积分

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

UID
159631
好友
1
蛮牛币
4360
威望
0
注册时间
2016-7-30
在线时间
526 小时
最后登录
2018-10-19
发表于 2017-11-15 09:01:55 | 显示全部楼层
谢谢分享

回复

使用道具 举报

7日久生情
3166/5000
排名
2319
昨日变化

0

主题

2266

帖子

3166

积分

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

UID
185339
好友
1
蛮牛币
4544
威望
0
注册时间
2016-11-20
在线时间
326 小时
最后登录
2018-10-19
发表于 2017-11-15 09:11:39 | 显示全部楼层
感谢分享

回复

使用道具 举报

6蛮牛粉丝
1445/1500
排名
2671
昨日变化

11

主题

591

帖子

1445

积分

Rank: 6Rank: 6Rank: 6

UID
214924
好友
3
蛮牛币
3560
威望
0
注册时间
2017-3-28
在线时间
331 小时
最后登录
2018-10-20
发表于 2017-11-15 09:12:27 | 显示全部楼层
差值才是关键。

回复

使用道具 举报

5熟悉之中
867/1000
排名
3590
昨日变化

0

主题

270

帖子

867

积分

Rank: 5Rank: 5

UID
229748
好友
0
蛮牛币
2498
威望
0
注册时间
2017-7-1
在线时间
207 小时
最后登录
2018-9-27
发表于 2017-11-15 09:18:57 | 显示全部楼层
感谢分享

回复

使用道具 举报

7日久生情
4306/5000
排名
2373
昨日变化

5

主题

3109

帖子

4306

积分

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

UID
209186
好友
5
蛮牛币
5490
威望
0
注册时间
2017-3-1
在线时间
628 小时
最后登录
2018-10-17
发表于 2017-11-15 09:23:29 | 显示全部楼层
谢谢分享

回复

使用道具 举报

6蛮牛粉丝
1195/1500
排名
2070
昨日变化

0

主题

346

帖子

1195

积分

Rank: 6Rank: 6Rank: 6

UID
179635
好友
1
蛮牛币
1689
威望
0
注册时间
2016-10-31
在线时间
223 小时
最后登录
2018-10-18
发表于 2017-11-15 09:34:52 | 显示全部楼层
感谢分享

回复

使用道具 举报

6蛮牛粉丝
1048/1500
排名
2858
昨日变化

0

主题

286

帖子

1048

积分

Rank: 6Rank: 6Rank: 6

UID
228538
好友
9
蛮牛币
2198
威望
0
注册时间
2017-6-24
在线时间
282 小时
最后登录
2018-10-19
发表于 2017-11-15 09:35:56 | 显示全部楼层
感谢分享

回复

使用道具 举报

5熟悉之中
936/1000
排名
2835
昨日变化

0

主题

139

帖子

936

积分

Rank: 5Rank: 5

UID
146162
好友
0
蛮牛币
1407
威望
0
注册时间
2016-4-20
在线时间
312 小时
最后登录
2018-10-15
发表于 2017-11-15 09:37:13 | 显示全部楼层
不错不错

回复

使用道具 举报

7日久生情
2717/5000
排名
446
昨日变化

1

主题

323

帖子

2717

积分

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

UID
27816
好友
3
蛮牛币
8729
威望
0
注册时间
2014-6-3
在线时间
873 小时
最后登录
2018-10-18
发表于 2017-11-15 09:56:36 | 显示全部楼层
感谢分享

回复

使用道具 举报

4四处流浪
456/500
排名
7507
昨日变化
1

4

主题

223

帖子

456

积分

Rank: 4

UID
234982
好友
0
蛮牛币
1116
威望
0
注册时间
2017-7-30
在线时间
83 小时
最后登录
2018-9-6
发表于 2017-11-15 12:54:10 | 显示全部楼层
dddddddddddddddddddddddddd

回复 支持 反对

使用道具 举报

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

本版积分规则

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