一、学习内容

通过弹球游戏,来熟悉unity的简单操作,以及一些脚本的添加及控制。
弹球游戏:  即只有一个底盘和一个球,控制底盘去接球,球撞到底盘后随机一个角度反弹。没接住球就算结束。

二、弹球游戏的制作

1、打开unity5,新建一个3d工程。
2、在Hierarchy视图框中添加一个cube对象,并命名Plate,作为底盘:
这个对象的Inspector视图的Transform组件参数设为,大概像个盘子就行。
其中position是控制cube的位置,rotation是角度,scale是大小。
3、再在HIerarchy中添加一个Sphere对象,并命名为Ball,作为球,scale属性改为1.5  1.5  1.5  (差不多大小就行)
4、给Ball对象添加一个Rigidbody组件,Mass质量属性设为0.1,勾选Use Gravity选项,表示受重力影响。
5、接下来就是给Plate和Ball创建脚本控制这两个对象该如何使用。
Plate的作用是可以控制左右移动,那么需要获取输入,以及设置一个移动速度就行。在plate对象的Inspector视图下方点击Add Component按钮,选择new script,并命名为MovePlate     ,创建好之后会有一个包含框架的代码,在里面加上速度属性和获取输入的代码即可:

using UnityEngine;
using System.Collections;public class MovePlate : MonoBehaviour {public float speed = 5.0f;//the speed of plate// Use this for initialization  // Update is called once per framevoid Update (){float h = Input.GetAxis("Horizontal");//get the horizontal inputtransform.Translate(Vector3.right * h * speed * Time.deltaTime);//move the plate}
}

其中使用public命名的对象,都会在Inspector视图对应的组件中出现,如speed就可以在视图中修改,不用修改代码。
Input.GetAxis("Horizontal")表示通过方向左右键来获得位移量。
transform.Translate表示移动脚本绑定的游戏对象,移动距离就是里面的参数。
Ball的作用是会随机角度反弹,并且球没有被盘接住,则游戏结束。
同样,在Ball的Inspector视图中添加脚本组件,命名为Ballcontroler,代码为:

</pre><pre code_snippet_id="1738402" snippet_file_name="blog_20160630_7_8266191" name="code" class="csharp"><pre name="code" class="csharp">using UnityEngine;
using System.Collections;public class BallContraler : MonoBehaviour {public float thrust = 40.0f;private Rigidbody rb;// Use this for initializationvoid Start (){rb = GetComponent<Rigidbody>();}// Update is called once per framevoid Update (){if (transform.position.y < -10){Destroy(gameObject);Application.Quit();}}void OnCollisionEnter(Collision collision){rb.AddForce(new Vector3(Random.Range(-0.2f, 0.2f), 1.0f, 0) * thrust);}
}

其中,thrust为反弹力大小,设为public,随时在视图界面控制大小。
新建Rigidbody对象rb,用来存储Ball对象中的组件Rigidbody,就是第4步中添加的物理组件。
如果球的位置低于水平面10的距离,就判输。
最后,就是碰撞控制的部分,OnCollisionEnter是unity中处理碰撞的函数之一,还有OnCollisionStay和OnCollisionExit。
至此,完成小球的脚本控制,运行游戏发现游戏基本规则已经完成,但是游戏的摄像头还有进行控制,小球和底盘会慢慢离开游戏界面,
我们通过添加unity自带的摄像头控制脚本:project视图中通过import package——charaters   然后选择SmoothFollow.cs

然后将这个脚本拖动到Hieracht视图的Main Camera对象上,之后再Main Camera的Inspector视图中就多了一个Script组件,然后target选择Ball或者Plate都行
这个脚本的功能就是让摄像机始终跟随target对象。
至此整个游戏设计完成。

三、总结

工程创建 、游戏元素创建及位置大小控制、Rigidbody的初步认识、为游戏对象创建脚本、通过脚本对游戏元素的位置控制
摄像机控制初试
通过Ctrl+Shift+B进行游戏发布。
工程在我的GitHub中:

https://github.com/congshenV/BallGame.git

[unity] unity学习——弹球游戏相关推荐

  1. Java学习--弹球游戏

    用Java写的一个简单的小游戏,叫弹球游戏.使用AWT画图技术及Timer定时器实现. Java可以用于开发一些动画.所谓动画,就是间隔一定时间(通常小于0.1秒)重新绘制新的图像,两次绘制的图像之间 ...

  2. Unity 创建2D平台游戏开发学习教程

    了解如何使用C#在Unity中创建您的第一款2D平台游戏 你会学到什么 使用Unity创建2D奥运会 使用可脚本化的对象和单一模式 使用良好的编程实践 创造武器和射弹 使用可脚本化的对象和委托模式创建 ...

  3. Unity 3D学习视觉脚本无需编码即可创建高级游戏

    在本课程中,您将学习如何在Unity中使用可视化脚本(以前称为Bolt)以及如何在不编写一行代码的情况下创建自己的高级游戏所需的一切.本课程将教你如何掌握可视化脚本,即使你以前没有任何关于unity或 ...

  4. Unity粒子系统创建VFX游戏特效学习教程 Visual Effects in Unity Particle Systems [Beginner’s Guide]

    在Unity中学习高级粒子系统和视觉效果创建.初级到中级 你会学到: 游戏的视觉效果 Unity粒子系统 Unity中的Vfx 创建Unity视觉效果的初级到中级指南 课程获取:Unity粒子系统创建 ...

  5. Unity 3D为策略游戏创建地图学习教程

    MP4 |视频:h264,1280×720 |音频:AAC,44.1 KHz,2 Ch 语言:英语+中英文字幕(根据原英文字幕机译更准确) |时长:30节课(7h 42m) |大小:5 GB 含项目文 ...

  6. Unity VR学习:第一人称射击游戏(1)

    Unity VR学习:第一人称射击游戏(1) 1.封装标签和场景淡入淡出效果实现 (1) 封装标签 1.标签有Player,Enemy,GameController,Fader(画布),MainCam ...

  7. 基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@[M_Studio]的教学视频

    基于Unity的2D小游戏 SpeedDown 开发笔记(学习bilibili@M_Studio的教学视频) 主要内容:在Sunnyland游戏的设计基础上,新增了物理组件Joint系列.DrawGi ...

  8. [Unity 学习] Unity 入门学习及第一个游戏

    [Unity 学习] Unity 入门学习及第一个游戏 跟着教程做的一个小游戏,基本上说就算我这样的零基础,两个小时就能实现. 主要就是熟悉一下 C#和 Unity,做一个能跑的东西. 简单的 Dem ...

  9. Unity 2D 学习笔记:游戏实例Sunnyland

    Unity 2D 学习笔记:游戏实例Sunnyland 01安装软件&导入素材 02编辑素材&Tilemap 03图层layer&角色建立 04角色移动 05角色方向& ...

  10. Unity游戏制作:2D弹球游戏 Pong(附完整项目)

    介绍 这里,又来做弹球游戏了--(^_^) 之前自学了一段时间的 unity,还是先做一款 2D 的小游戏吧,运行效果如下: 目录 下载 项目制作过程 一.拼界面 二.主程序Game.cs 1)显示初 ...

最新文章

  1. tensorflow打印模型结构_Tensorflow上手1: Print与py_func
  2. php中空心字体怎么打,php打印一个边长为N的实心和空心菱型的方法
  3. 《ASP.NET MVC企业实战》(二) MVC开发前奏
  4. KindEditorckplayer的简单结合
  5. 让pt-slave-restart支持MariaDB
  6. Delphi中Tobject与Variant之间的转换
  7. Nginx模块之SessionSticky
  8. mysql 单表字段多少合适_复制信息记录表|全方位认识 mysql 系统库
  9. 题目1362:左旋转字符串(Move!Move!!Move!!!)
  10. ToB产品设计:用户权限系统解析
  11. web前端炫酷特效-CSS3制作环形星星发光动画
  12. 基于springboot的贫困帮扶系统
  13. EL表达式获取对象属性的原理
  14. Maven下载安装旧版本
  15. iTween插件使用
  16. Python中实现控制小数点位数的方法
  17. 【刷题】LOJ 6008 「网络流 24 题」餐巾计划
  18. 聚币网API[Python2版]
  19. QR码生成原理(一)
  20. python分苹果问题_蓝桥杯--算法提高--VIP--分苹果题目(差分数组)

热门文章

  1. html手机支付案例,实例讲述Ecshop实现的支付宝手机网页支付功能
  2. Kotlin 异常处理之 Option、Either、Result
  3. python修改ppt的字体和颜色_ppt-页面大小和颜色更改
  4. function里面的两个参数是什么意思?
  5. javascript中function前面的符号的意思!
  6. 【electron】window.require is not a function
  7. 英皇考级——听力测试的训练方法
  8. android提交sql语句,sql的提交 - 亭子happy的个人页面 - OSCHINA - 中文开源技术交流社区...
  9. 爱思服务器shsh文件类型,爱思服务器查询shsh失败
  10. 将iPad,iPhone或eReader的PDF电子书转换为ePub格式