当前位置:首页 > 程序设计 >
《Unity游戏案例开发大全》电子书封面

Unity游戏案例开发大全

  • 发布时间:2019年03月05日 10:50:13
  • 作者:吴亚峰
  • 大小:30.9 MB
  • 类别:Unity电子书
  • 格式:PDF
  • 版本:超清完整版
  • 评分:8.8

    Unity游戏案例开发大全 PDF 超清完整版

      给大家带来的一篇关于Unity相关的电子书资源,介绍了关于Unity、游戏开发方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小30.9 MB,吴亚峰编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.3分

      Tags:Unity 游戏开发 

      内容介绍

      很好的一本书,各方面都讲述的非常详细,很棒!

      unity游戏开发案例,从小东西做起!

      不错的书,可以用来学习或者讲课,比较通俗易懂

      u3d经典的书不是很多,很多教材讲得并不清楚,通过案例来学习是这种工具类软件的不二法门,本书从这个意义上说还是不错的

      10大完整商业案例,全面加速读者进入实战角色!
      以热门酷跑类、益智类、休闲类、飞行类、射击类、物理引擎类为例,完整再现手游的开发过程,无论你开发商业案例还是做毕业设计,这一本就够!
      真实酷炫的“3D桌球”
      物理引擎+重力感应的“3D迷宫魔盒”
      火热界面搭建NGUI+智能AI的“穿越子午线”
      3D技术+物理引擎的“古墓推金币”
      益智休闲类的“可乐可乐”
      射击类游戏“坦克大战”
      休闲酷跑类游戏“小狗快跑”
      3D虚拟+物理引擎的“虚拟停车场”
      飞行类手机游戏“拯救蘑菇村”
      体育类竞技游戏“百纳赛车”

      内容介绍

      随着智能手机的普及,一些可玩性强的手机游戏应用也逐渐普及开来。《Unity游戏案例开发大全》结合作者多年从事游戏应用开发的经验,详细地介绍了10款Unity 3D游戏案例的开发,主要内容如下。

      第1章——Unity 3D基础以及开发环境的搭建,简要介绍了Unity 3D的诞生、特点、开发环境的搭建以及运行机制;第2章——3D桌球,3D桌球使用了着色器,极大地丰富了游戏的视觉效果,增强了用户体验,桌球运动十分真实酷炫;第3章——3D迷宫魔盒,使用了Unity 3D强大的物理引擎,配合重力感应增强了用户体验,滚球运动十分真实;第4章——穿越子午线,借助火热的界面搭建插件NGUI,结合触摸技术,再加上智能AI,使玩家得到真实体验;第5章——古墓推金币,玩家在游戏中将能够体验到3D技术与物理引擎带来的真实的视觉享受;第6章——可乐可乐,玩家通过滑动触摸屏进行发球;第7章——坦克大战,模拟了坦克射击场景;第8章——小狗快跑,本游戏充分体现出酷跑类游戏快速的游戏节奏,能够充分发挥玩家的反应能力;第9章——3D虚拟停车场,用户在玩游戏时,不但体验了3D技术与物理引擎带来的真实的视觉享受,还能获得一些停车技巧;第10章——拯救蘑菇村,玩家通过触摸屏幕上的摇杆或者各个按钮,实现操控飞机等效果;第11章——百纳赛车,这款游戏可以让人们随时体验驾驶赛车所带来的乐趣。

      同时,为了便于读者的学习,《Unity游戏案例开发大全》附赠了光盘,其中包含了书中所有案例的完整代码,能更好地帮助读者快速掌握相应的开发技术。《Unity游戏案例开发大全》适合有一定基础、有志于游戏开发的读者学习使用,也可以作为相关培训学校和大专院校相关专业的教学用书。

      内容节选

      Unity3d实现Flappy Bird游戏

      本文实例为大家分享了Unity3d实现Flappy Bird的具体代码,供大家参考,具体内容如下

      一、小鸟

      在游戏中,小鸟并不做水平位移,而是通过障碍物的移动让小鸟有水平运动的感觉,小鸟只需要对鼠标的点击调整竖直加速度就可以了,同时加上水平旋转模仿原版的FlappyBird的运动。同时,还要对竖直位置进行判断,否则游戏不能正常结束。

      这里贴上小鸟上附加的脚本代码

      Player.cs

      using UnityEngine;
      using System.Collections;
       
      public class Player : MonoBehaviour {
       
       
       private Rigidbody body;
       public Vector3 jumpForce = new Vector3(0, 300, 0);
       private bool state = true; //确保只执行一次
       private int bestScore = 0;
       
       // Use this for initialization
       void Start () {
        
        body = transform.GetComponent<Rigidbody>();  
       }
       
       void OnCollisionEnter(Collision collisionInfo)
       {
        if (state)
        {
         //碰撞游戏结束
         state = false;
         Score.instance.state = false;
         AudioManager.instance.PlayHit();
         AudioManager.instance.PlayDie();
         Invoke("EndGame", 0.4f);
        }
        
        
       }
       
       // Update is called once per frame
       void Update () 
       {
        //下限
        if (transform.position.y < -20)
        {
         if (state)
         {
          state = false;
          Score.instance.state = false;
          AudioManager.instance.PlayDie();
          Invoke("EndGame", 0.4f);
         }
        }
       
        //上限
        if (transform.position.y > 20)
        {
         if (state)
         {
          state = false;
          Score.instance.state = false;
          AudioManager.instance.PlayDie();
          Invoke("EndGame", 0.4f);
         }
        }
        //判断鼠标左键点击或者空格
        if (Input.GetKeyDown(KeyCode.Space)||Input.GetMouseButtonDown(0))
        {
         AudioManager.instance.PlayFly();
         body.velocity = Vector3.zero;
         //加速度
         body.AddForce(jumpForce);
         //控制旋转量
         this.transform.rotation = Quaternion.Euler(45, 270, 0);
        }   
        else
        {
          //旋转
         if (transform.rotation.eulerAngles.x >= 280||transform.rotation.eulerAngles.x<=50)
         {
          
          transform.Rotate(-150 * Time.deltaTime, 0, 0);
         }
        }
       
       }
       
       public void EndGame()
       {
        //保存最佳成绩
        PlayerPrefs.SetInt("PlayerScore", Score.instance.score);
        bestScore = PlayerPrefs.GetInt("PlayerBestScore");
        if (Score.instance.score > bestScore)
         bestScore = Score.instance.score;
        PlayerPrefs.SetInt("PlayerBestScore", bestScore);
        //跳转到结束场景
        Application.LoadLevel("End");
       }
       
      }

      二、障碍物

      障碍物只要定时产生,随机设定偏移量,然后添加向左运动的速度就行了,同时要设定自动销毁的时间,回收障碍物,否则内存占用会越来越大。

      这里用了三个脚本,分别是上下障碍物和障碍物生成脚本。附加到一个空物体上就行了。

      GenerateObstacle.cs

       

      using UnityEngine;
      using System.Collections;
       
      public class GenrateObstacle : MonoBehaviour {
       
       public GameObject obstacle;
       public GameObject obstacle1;
       public float startTime = 1f;
       public float gapTime=1.5f;
       public float gapDistance = 13;
       private Vector3 gapVector;
       private Vector3 midVector;
       // Use this for initialization
       void Start () {
        InvokeRepeating("InitiateObstacle", startTime, gapTime);
        gapVector = new Vector3(0, gapDistance / 2, 0);
        
       }
       
       void InitiateObstacle()
       {
        midVector = new Vector3(8,Random.Range(-3.2f, 3.2f),0);
       
        Instantiate(obstacle, midVector+gapVector,new Quaternion(0,0,180,0));
        Instantiate(obstacle1, midVector-gapVector, Quaternion.identity);
        
       }
      }

      Obstacle.cs

      using UnityEngine;
      using System.Collections;
       
      public class Obstacle : MonoBehaviour {
       
       public float speed = -8f;
       private Rigidbody body;
       private Transform player;
       private bool isPassed = false;
       // Use this for initialization
       void Start () {
        Destroy(this.gameObject, 4);
        body = this.GetComponent<Rigidbody>();
        body.velocity = new Vector3(speed, 0, 0);
        player = GameObject.FindGameObjectWithTag("Bird").transform;
       }
       
       // Update is called once per frame
       void Update () {
        if (player.transform.position.x > transform.position.x && isPassed == false)
        {
         isPassed = true;
         
         Score.instance.GetScore();
        }
       }
      }

      Obstacle1.cs

      using UnityEngine;
      using System.Collections;
       
      public class Obstacle1 : MonoBehaviour {
       public float speed = -8f;
       private Rigidbody body;
       private Transform player;
       private bool isPassed = false;
       // Use this for initialization
       void Start()
       {
        Destroy(this.gameObject, 4);
        body = this.GetComponent<Rigidbody>();
        body.velocity = new Vector3(speed, 0, 0);
        player = GameObject.FindGameObjectWithTag("Bird").transform;
       }
       
       
      }

      此外还有分数显示,最佳分数显示,音效等等,都是细节。

      目录

      • 第1章 Unity 3D基础以及开发环境的搭建
      • 第2章 3D极品桌球
      • 第3章 3D迷宫魔盒
      • 第4章 穿越子午线
      • 第5章 古墓推金币
      • 第6章 益智休闲类游戏--可乐可乐
      • 第7章 坦克大战
      • 第8章 酷跑类游戏--小狗快跑
      • 第9章 3D虚拟停车场
      • 第10章 拯救蘑菇村
      • 第11章 百纳赛车

      以上就是本次介绍的Unity电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:数字图像处理与机器视觉:Visual C++与Matlab实现(第2版)

      下一篇:中文版3ds Max 2016完全自学教程

      展开 +

      收起 -

      下载地址:百度网盘下载
      读者心得
      33小时8分钟前回答

      MySQL Installer is running in Community mode 的解决办法

      今天在运行登录远程桌面的时候发现了这个提示 关于 “ MySQL Installer is running in Community mode ” 的解决办法 在项目开发完成后,需求是将项目部署到云服务器上,其中使用到了MySQL服务器,我们使用的是基于最新版本的MySQL服务,在安装完成后,系统能正常运行,但是第二天出现了如下一个提示框,如下图: 给个人人都看得懂的如下图: 解决办法: 这个是新版本MySQL服务自带的一个定时任务,每天23:59:59执行的任务,我们只需要在本地系统的“任务计划程序”中将这个定时任务干掉就OK了。 开始 - 在 “ 搜索程序和文件 ” 框中,输入 “ 任务 ” 然后回车,然后选择 “ 任务计划程序 ” ,如下图: 打开……

      51小时45分钟前回答

      centos 6.5下 mysql-community-server. 5.7.18-1.el6安装

      使用下面的命令检查是否安装有MySQL Server [root@localhost etc]# rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库 有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉 [root@localhost ~]# rpm -e mysql // 普通删除模式[root@localhost ~]# rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除 在删除完以后我们可以通过 rpm -qa | grep mysql 命令来查看mysql是否已经卸载成功!! 官网yum repository 下载安装包 [root@localhost ~]# wget http://dev.mysql.com/get/mysql57-community-release-el6-10.noarch.rpm --2017-04-24 18:53:49-- http://dev.mysql.com/get/mysql57-commu……

      35小时38分钟前回答

      unity3d能用python写吗

      Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。 Unity3D支持javascipt,C#,boo三种语言,使用度最高的是前两种,需要说明的javascipt不是网页的那个javascipt,是Unity自己变化过后的一种语言。 (推荐学习:Python视频教程) Unity类似于Director,Blender game engine, Virtools 或 Torque Game Builder等利用交互的图型化开发环境为首要方式的软件。其编辑器运行在Windows 和Mac OS X下,可发布游戏至Windows、Mac、Wii、iPhone、WebGL(需要HTML5)、Windows phone 8和Android平台。也可以利用Unity web player插件发布网……

      码农之家

      鄂弘厚 提供上传

      资源
      34
      粉丝
      4
      喜欢
      279
      评论
      1

      Copyright 2018-2021 www.xz577.com 码农之家

      版权投诉 / 书籍推广:520161757@qq.com