游戏蛮牛学习群(纯技术交流,不闲聊):959392658
福建体彩31选7开奖 手机端
开发者专栏

关注:2372

当前位置:福建体彩31选7开奖 技术专区 开发者专栏

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

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

31选7玩法: [士郎] 炫酷跑酷教程(2)——多样化的道路生成与简单UI

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

福建体彩31选7开奖 www.jlh8.com.cn 7076

主题

7602

帖子

2万

积分

Rank: 16

UID
1231
好友
185
蛮牛币
11045
威望
30
注册时间
2013-7-29
在线时间
3638 小时
最后登录
2018-12-13

社区QQ达人活力之星原创精华达人突出贡献奖财富之证游戏蛮牛QQ群会员蛮牛妹VIP

跳转到指定楼层
楼主
发表于 2018-5-7 14:36:23 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本文为跑酷教程的第二期,第一期传送门如下:

炫酷跑酷教程(1)——简单的动态地图生成与人物动作


地图多样化
在开始本篇教程之前,我们得先讨论我们的跑酷游戏中还需要什么样的地形,来丰富我们的地图,完成地图多样化。那赶紧请出我的小伙伴给出创意?。?/font>
伙伴A:地图来个像斜坡的功能,能上能下,能右斜,左斜的那种。
伙伴B:总是在安全的地面跑太没有挑战了,加上镂空的地图多刺激。
目标地图
由以上需求分析出我们新的地形生成:
地形1:上升地形
地形2:下降地形
地形3:左斜地形
地形4:右斜地形
地形5:陷阱地图
地型实现
地形1-4生成比较简单,只要在引导物体更换坐标时,改变下一次的相应方向的值就行。我们在GameMode.cs文件中新声明地形的生成函数。
[AppleScript] 纯文本查看 复制代码
public void BuidUpTerrain()    //生成上升地形
    {
        var tmpRoad = Instantiate(roadTemplate, guideTrs.position, guideTrs.rotation);
        PlayRoadAnimator(tmpRoad);
        roads.Add(tmpRoad);
        guideTrs.position += guideTrs.forward;
        guideTrs.position += guideTrs.up * 0.1f;
    }


但是地形地图需要连续一段才能看出效果,我们就设定任何一种地形都是至少由10个道路组成,值得注意的是,我们现在的地图生成逻辑是踩过一个道路才会在生成下一个,如果这样的话,我们生成地形地图的时候就得注意道路生成的数量,否则就会造成游戏生成物体的数量成指数级的增长,然后内存就爆掉了,这是血的教训啊,一定要谨记。于是我们新加了限制条件,并做了如下更改:
[AppleScript] 纯文本查看 复制代码
public bool isBuidDirRoad;                                 //是否生成方向道路
  int dirRoadType;                                           //方向道路的类型
  int dirRoadNumber;                                         //方向道路的数量
  public void BuidRoad()                                     //生成道路的方法
    {
        if (isBuidDirRoad && dirRoadNumber > 0)
        {
            switch (dirRoadType)                             //通过道路的类型来进行生成
            {
                case 1:
                    BuidUpTerrain();
                    dirRoadNumber--;
                    break;
                case 2:
                    BuidDownTerrain();
                    dirRoadNumber--;
                    break;
                case 3:
                    BuidLeftTerrain();
                    dirRoadNumber--;
                    break;
                case 4:
                    BuidRightTerrain();
                    dirRoadNumber--;
                    break;
            }[/font][/color][/align][align=left][color=rgb(26, 26, 26)][font=-apple-system, BlinkMacSystemFont,]
            if (dirRoadNumber <= 0)
            {
                isBuidDirRoad = false;
            }
        }

这样就完成了我们的目标,限制了生成道路的数量。
地形5:陷阱地图生成虽然较为简单,只需要改变一下道路模板的自身旋转,但是有3种模式,如下:

一:相对于道路的右边
二:相对于道路居中
三:相对于道路右边
知道了这几种模式,我们就可以在代码中进行实现,如下:
[AppleScript] 纯文本查看 复制代码
public void BuidTrapRoad()
    {
        guideTrs.position += guideTrs.forward;
        var tmpRoad = Instantiate(roadTemplate, guideTrs.position, guideTrs.rotation);
        var tmpController = tmpRoad.GetComponent<RoadController>();
        tmpController.ChangeRoadType();
        tmpRoad.transform.Rotate(Vector3.up,90);
        int trapType = Random.Range(1,4);    //用于确定陷阱的相对位置--1左边,2居中,3右边!
        switch (trapType)
        {
            case 1:
                tmpRoad.transform.position += tmpRoad.transform.forward;
                break;
            case 2:                         //居中类型不做操作
                break;
            case 3:
                tmpRoad.transform.position -= tmpRoad.transform.forward;
                break;
        }
        guideTrs.position += guideTrs.forward * 2.0f;
        PlayRoadAnimator(tmpRoad);
        roads.Add(tmpRoad);
    }

而且由于我们现在的旋转函数是绕父物体的Fowrd轴旋转的,改变父物体旋转后,需要重新确定绕什么轴进行旋转。我们需要在RoadChildrenChange.cs文件中在写一个旋转函数。如下:
[AppleScript] 纯文本查看 复制代码
transform.RotateAround(parentObj.transform.position, parentObj.transform.right, 30 * Time.deltaTime);

金币
  没有金币这个道具,跑酷游戏的色彩都会减少一半。在生成金币的时候我们会发现,我们金币生成的位置总是固定在道路的上方,每一个格子对应一个金币的生成位,那么按照这样的逻辑,我们可以在道路生成完成后在进行金币的生成,于是在RoadChildrenChange.cs中写出我们的金币生成函数:
[AppleScript] 纯文本查看 复制代码
private void Start()
{
    gold = Resources.Load("Gold") as GameObject;            //读取文件金币的预制体
    bool isCreat = Random.Range(1, 10) == 3 ? true : false; //是否生成金币
    if (isCreat)
    {
        Vector3 tmpPos = transform.position;
        gold = Instantiate(gold, tmpPos += transform.up * 1.2f, Quaternion.identity);
        gold.transform.SetParent(transform);
        nowQuat = gold.transform.rotation;                  //保存当前金币的旋转,方便初始化。
    }
}

在给金币加上旋转,这样看起来就跟好玩了。
[AppleScript] 纯文本查看 复制代码
gold.transform.Rotate(Vector3.up,70*Time.deltaTime);

完成后:

UI
  跑酷游戏的UI不需要太多,我们这个工程暂时只做一个显示当前金币数的UI就足够了。首先,我们新建一个Canvas,在Canvas下面新建一个Text的UI。打开2D视图进行物体的位置改变。如图:

完成创建以后,我们新建一个Goldcollision.cs文件,用来完成吃金币的效果,代码如下:
[AppleScript] 纯文本查看 复制代码
private void OnTriggerExit(Collider other)
    {
        var player = other.gameObject.GetComponent<PlayerController>();
        if (player)
        {
            gameMode.goldNumber++;
            Destroy(gameObject);
        }
    }

接着将脚本挂载在金币物体当中,并勾选触发器按钮,并保存。



同时我们在GameMode文件进行UI文本的更新:
[AppleScript] 纯文本查看 复制代码
using UnityEngine.UI;    //引入UI
private void Update()
    {
        numberText.text ="当前金币数:"+ goldNumber.ToString();
    }

场景装饰
  完成以上工作后,我发现之前的场景太low了,完全不符合我们的的游戏主题,于是替换掉我们场景的天空盒子,更换道路材质,运行游戏:

  是不是顿时觉得高大上了许多呢?天空盒子与道路材质都可以在Unity的商店进行下载,导入后进行替换即可,这里就不在过多阐述了。
知乎@繁华如梦



跟我念“站长妹纸萌萌哒!”我说站长,你说YO!爱你们么么哒~
3偶尔光临
203/300
排名
11680
昨日变化
4

0

主题

77

帖子

203

积分

Rank: 3Rank: 3Rank: 3

UID
278671
好友
0
蛮牛币
16
威望
0
注册时间
2018-4-24
在线时间
46 小时
最后登录
2018-11-26
沙发
发表于 2018-5-7 16:10:14 | 只看该作者
发的鬼地方个梵蒂冈梵蒂冈
[发帖际遇]: 一个袋子砸在了 小Dong 头上,小Dong 赚了 1 蛮牛币. 幸运榜 / 衰神榜

7日久生情
1560/5000
排名
1701
昨日变化
5

5

主题

115

帖子

1560

积分

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

UID
138025
好友
2
蛮牛币
1863
威望
0
注册时间
2016-3-1
在线时间
696 小时
最后登录
2018-12-13
板凳
发表于 2018-5-7 16:12:41 | 只看该作者
dirRoadNumber--;
为什么不把这句话放在最后,要分开写出四句?

7日久生情
1526/5000
排名
1566
昨日变化
2

6

主题

225

帖子

1526

积分

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

UID
162659
好友
3
蛮牛币
3494
威望
0
注册时间
2016-8-16
在线时间
503 小时
最后登录
2018-12-13
地板
发表于 2018-5-8 09:10:48 | 只看该作者
,谢谢大佬

6蛮牛粉丝
1110/1500
排名
2615
昨日变化
9

17

主题

183

帖子

1110

积分

Rank: 6Rank: 6Rank: 6

UID
221064
好友
2
蛮牛币
1512
威望
0
注册时间
2017-5-7
在线时间
382 小时
最后登录
2018-12-13
5#
发表于 2018-5-8 09:27:33 | 只看该作者
66666666666666666

5熟悉之中
953/1000
排名
2815
昨日变化
17

1

主题

142

帖子

953

积分

Rank: 5Rank: 5

UID
236305
好友
1
蛮牛币
1340
威望
0
注册时间
2017-8-7
在线时间
310 小时
最后登录
2018-12-13
6#
发表于 2018-5-8 09:49:17 | 只看该作者
前来学习 这么快就ep2了

5熟悉之中
921/1000
排名
3433
昨日变化
2

0

主题

221

帖子

921

积分

Rank: 5Rank: 5

UID
203671
好友
1
蛮牛币
1879
威望
0
注册时间
2017-1-20
在线时间
284 小时
最后登录
2018-11-6
7#
发表于 2018-5-8 11:54:37 | 只看该作者
6666666666666666666666

4四处流浪
493/500
排名
7004
昨日变化
5

0

主题

166

帖子

493

积分

Rank: 4

UID
243107
好友
0
蛮牛币
604
威望
0
注册时间
2017-9-13
在线时间
147 小时
最后登录
2018-12-10
8#
发表于 2018-5-8 13:19:52 | 只看该作者

7日久生情
3395/5000
排名
203
昨日变化
1

0

主题

107

帖子

3395

积分

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

UID
45275
好友
0
蛮牛币
6821
威望
0
注册时间
2014-9-17
在线时间
1192 小时
最后登录
2018-12-13
QQ
9#
发表于 2018-5-8 17:16:10 | 只看该作者
感谢分享

6蛮牛粉丝
1166/1500
排名
1793
昨日变化
2

8

主题

176

帖子

1166

积分

Rank: 6Rank: 6Rank: 6

UID
131585
好友
0
蛮牛币
2498
威望
0
注册时间
2015-12-13
在线时间
266 小时
最后登录
2018-12-12
10#
发表于 2018-5-8 22:19:47 | 只看该作者
不说话,只围观

5熟悉之中
634/1000
排名
6390
昨日变化
50

1

主题

230

帖子

634

积分

Rank: 5Rank: 5

UID
258102
好友
1
蛮牛币
734
威望
0
注册时间
2017-12-6
在线时间
201 小时
最后登录
2018-12-13

一贫如洗

11#
发表于 2018-5-9 09:27:29 | 只看该作者
膜拜一下大神

7日久生情
3433/5000
排名
1707
昨日变化
4

0

主题

2127

帖子

3433

积分

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

UID
219676
好友
1
蛮牛币
2625
威望
0
注册时间
2017-7-12
在线时间
558 小时
最后登录
2018-12-13

活力之星

12#
发表于 2018-5-9 09:44:00 | 只看该作者
谢谢分享

7日久生情
3721/5000
排名
2036
昨日变化
4

0

主题

2648

帖子

3721

积分

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

UID
185339
好友
1
蛮牛币
4547
威望
0
注册时间
2016-11-20
在线时间
423 小时
最后登录
2018-12-13
13#
发表于 2018-5-9 10:12:42 | 只看该作者

3偶尔光临
176/300
排名
9142
昨日变化
2

0

主题

9

帖子

176

积分

Rank: 3Rank: 3Rank: 3

UID
227894
好友
0
蛮牛币
328
威望
0
注册时间
2017-6-21
在线时间
45 小时
最后登录
2018-12-5
14#
发表于 2018-5-10 19:32:13 | 只看该作者
看起来还不错的样子哦!资源商店的资源是免费的吗???

3偶尔光临
176/300
排名
9142
昨日变化
2

0

主题

9

帖子

176

积分

Rank: 3Rank: 3Rank: 3

UID
227894
好友
0
蛮牛币
328
威望
0
注册时间
2017-6-21
在线时间
45 小时
最后登录
2018-12-5
15#
发表于 2018-5-10 19:33:16 | 只看该作者
小Dong 发表于 2018-5-7 16:10
发的鬼地方个梵蒂冈梵蒂冈

厉害厉害厉害

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

本版积分规则

快速回复 福建体彩31选7开奖 返回列表
621| 712| 230| 160| 885| 42| 385| 738| 489| 218|