开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

开发者专栏

关注:2067

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

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

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

[杨显峰讲师] Navmeshagent与飞行

[复制链接]  [移动端链接]
排名
6679
昨日变化
4

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日久生情
2143/5000
排名
4324
昨日变化
17

2

主题

1572

帖子

2143

积分

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

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

回复

使用道具 举报

4四处流浪
455/500
排名
8986
昨日变化
1

3

主题

252

帖子

455

积分

Rank: 4

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

回复

使用道具 举报

6蛮牛粉丝
1320/1500
排名
4248
昨日变化
24

7

主题

639

帖子

1320

积分

Rank: 6Rank: 6Rank: 6

UID
183904
好友
5
蛮牛币
2430
威望
0
注册时间
2016-11-15
在线时间
390 小时
最后登录
2018-1-23

迈向小康

QQ
发表于 2017-11-15 08:42:09 | 显示全部楼层
想法很给力

回复

使用道具 举报

排名
12682
昨日变化
2

0

主题

3

帖子

74

积分

Rank: 2Rank: 2

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

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1144/1500
排名
2551
昨日变化
6

3

主题

324

帖子

1144

积分

Rank: 6Rank: 6Rank: 6

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

回复

使用道具 举报

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

0

主题

523

帖子

867

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

5熟悉之中
833/1000
排名
4518
昨日变化
3

6

主题

378

帖子

833

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

4四处流浪
433/500
排名
6294
昨日变化
41

0

主题

156

帖子

433

积分

Rank: 4

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

回复

使用道具 举报

7日久生情
3781/5000
排名
4225
昨日变化
20

5

主题

3129

帖子

3781

积分

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

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

回复

使用道具 举报

5熟悉之中
966/1000
排名
2444
昨日变化
2

0

主题

299

帖子

966

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

4四处流浪
429/500
排名
6635
昨日变化
40

0

主题

150

帖子

429

积分

Rank: 4

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

回复

使用道具 举报

5熟悉之中
895/1000
排名
2538
昨日变化
2

0

主题

132

帖子

895

积分

Rank: 5Rank: 5

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

回复

使用道具 举报

7日久生情
2238/5000
排名
569
昨日变化

1

主题

281

帖子

2238

积分

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

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

回复

使用道具 举报

4四处流浪
427/500
排名
7008
昨日变化
3

3

主题

206

帖子

427

积分

Rank: 4

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

回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

站长推荐 上一条 /1 下一条

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