Unity3D 5.x 简单实例 - 发射炮弹
1,下载、安装: http://unity3d.com/cn/get-unity/download/archive
建议直接借助 UnityDownloadAssistant 进行安装,根据需要勾选需要的资源包,下载完成后有以下资源:
2,学习视频:51自学网 → Unity3D游戏制作入门教程
学习建议: 参考教程中的思路、实现方法,但不一定完全要按照教程中的每一步去做,觉得不好的地方,自己可以变通一下
3,发射炮弹实例注意事项:
(1) 教学中编辑器是4.X版本的,官网下载的最新版本是5.X版本,部分Javascript的代码语法不同
如:5.X 版本中 获取组件的代码是: n.GetComponent(Rigidbody).AddForce(fwd*3800);
5.X 版本中 可用 UI - Text 代替 之前版本的 GUIText :
gameObject.Find("Canvas/Text").GetComponent(Text).text ="射击次数:"+shootNums;
(2) 地面建议用 3D Object → Plane 对象,然后加大 x,z ,y 设置为1
(3) 显示发射次数和显示次数的文本
(4) 发射的子弹暂时不Destroy
4,以下是1-21课完整的Javascript代码:
附加在Main Camera上的JS:
import UnityEngine.UI; #pragma strict var speed:int=;
var Newobject:Transform; //发射次数
var shootNums:int=;
//保存消灭数量
var killNums:int=; function Start () {
gameObject.Find("Canvas/Text").GetComponent(Text).text ="射击次数:"+shootNums + " 消灭数量:"+killNums; //加载音乐
gameObject.Find("Plane").GetComponent(AudioSource).Play();
gameObject.Find("bullt").GetComponent(AudioSource).Pause();
} function Update () { //镜头(视角)前后左右移动 : W S A D
var x:float=Input.GetAxis("Horizontal")*Time.deltaTime*speed;
var z:float=Input.GetAxis("Vertical")*Time.deltaTime*speed;
transform.Translate(x,,z); //点击 Ctrl 或 点击鼠标左键 发射
if (Input.GetButtonDown("Fire1")) { //创建发射球体
var n:Transform = Instantiate(Newobject,transform.position,transform.rotation);
//定义发射方向
var fwd:Vector3=transform.TransformDirection(Vector3.forward);
//发射力度
n.GetComponent(Rigidbody).AddForce(fwd*); gameObject.Find("bullt").GetComponent(AudioSource).Play();
//记录发射次数
shootNums+=; //更新发射次数
gameObject.Find("Canvas/Text").GetComponent(Text).text ="射击次数:"+shootNums+ " 消灭数量:"+killNums;
} //旋转功能
//视角向右转 E
if(Input.GetKey(KeyCode.Q)){
transform.Rotate(,-*Time.deltaTime,,Space.Self);
}
//视角向左转 Q
if(Input.GetKey(KeyCode.E)){
transform.Rotate(,*Time.deltaTime,,Space.Self);
}
//仰视 Z
if(Input.GetKey(KeyCode.Z)){
transform.Rotate(-*Time.deltaTime,,,Space.Self);
}
//俯视 C
if(Input.GetKey(KeyCode.C)){
transform.Rotate(*Time.deltaTime,,,Space.Self);
} //镜头水平向上、水平向下移动
if(Input.GetKey(KeyCode.H)){
transform.Translate(,*Time.deltaTime,);
}
if(Input.GetKey(KeyCode.N)){
transform.Translate(,-*Time.deltaTime,);
}
}
附加在消灭立方体物体上的JS:
#pragma strict function Start () { } //消灭数量
var countkillNums:int=; function Update () { if (gameObject.transform.position.y<) { countkillNums=++gameObject.Find("Main Camera").GetComponent(ShootBullt).killNums; if (countkillNums>=) {
gameObject.Find("Canvas/Text").GetComponent(Text).text = "恭喜:闯关成功!" ;
gameObject.Find("Main Camera").GetComponent(ShootBullt).enabled=false;
} Destroy(gameObject);
} }
实现效果:
Unity3D 5.x 简单实例 - 发射炮弹的更多相关文章
- Unity3D 5.x 简单实例 - 脚本编写
1,Vector3 类型变量存储向量坐标值 Vector3.forward Vector3(0,0,1) Vector3.up Vector3(0,1,0) Vector3.right Vector3 ...
- Unity3D 5.x 简单实例 - 孤岛场景搭建
1,如果我们的Unity 5.X 是从这个地址下载的,安装后不会有资源包,则需要从Unity3D官网下载资源包: Standard Assets (Unity 5.x) 下载 下载后安装后,Unity ...
- Unity3D自定义编辑器简单实例
MenuItem:在标题栏自定义菜单.需要在Editor文件夹内创建脚本,无需挂载.但是注意其下的函数必须为静态函数. using UnityEngine; using UnityEditor; pu ...
- SpringMVC笔记——SSM框架搭建简单实例
落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...
- Hibernate(二)__简单实例入门
首先我们进一步理解什么是对象关系映射模型? 它将对数据库中数据的处理转化为对对象的处理.如下图所示: 入门简单实例: hiberante 可以用在 j2se 项目,也可以用在 j2ee (web项目中 ...
- 最新 Eclipse IDE下的Spring框架配置及简单实例
前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...
- 修改js confirm alert 提示框文字的简单实例
修改js confirm alert 提示框文字的简单实例: <!DOCTYPE html> <html> <head lang="en"> & ...
- 利用navicat创建存储过程、触发器和使用游标的简单实例
利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报 分类: 数 ...
- 【转】Android Https服务器端和客户端简单实例
转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 ...
随机推荐
- 剑指Offer面试题:25.二叉搜索树与双向链表
一.题目:二叉搜索树与双向链表 题目:输入一棵二叉搜索树,将该二叉搜索树转换成一个排序的双向链表.要求不能创建任何新的结点,只能调整树中结点指针的指向.比如输入下图中左边的二叉搜索树,则输出转换之后的 ...
- java中文乱码解决之道(六)-----javaWeb中的编码解码
在上篇博客中LZ介绍了前面两种场景(IO.内存)中的java编码解码操作,其实在这两种场景中我们只需要在编码解码过程中设置正确的编码解码方式一般而言是不会出现乱码的.对于我们从事java开发的人而言, ...
- 用 maven filter 管理不同环境的配置文件
使用 maven profile 一个项目可以部署在不同的环境当中,maven 的 profile 针对不同的环境指定各自的编译方法.在 pom.xml 的 profile 中,可以根据不同的环境定制 ...
- Hibernate的三种状态及对象生命周期
理解Hibernate的三种状态,更利于理解Hibernate的运行机制,这些可以让你在开发中对疑点问题的定位产生关键性的帮助. 三种状态 临时状态(Transient):在通过new关键字, ...
- redis总结
redis总结 redis与memcached redis支持更多的数据结构 redis支持数据持久化 redis支持两种存储方式:snapshot(快照)和aof(append only mode) ...
- JWS.Mono如何进行“在线安装”
这里话就不多说了,使用方法如下: wget http://jhonge.net/down4load/1413998270361/jwsmono_net.sh chmod a+x jwsmono_net ...
- [ASP.NET MVC 大牛之路]02 - C#高级知识点概要(1) - 委托和事件
在ASP.NET MVC 小牛之路系列中,前面用了一篇文章提了一下C#的一些知识点.照此,ASP.NET MVC 大牛之路系列也先给大家普及一下C#.NET中的高级知识点.每个知识点不太会过于详细,但 ...
- MySQL数据库数据存放位置修改
MySQL数据库数据存放位置修改 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方 ...
- 使用变量 数据类型转换 逻辑控制语句(begin ...end; case...end; if...else; while)
一:变量 变量分为局部变量和全局变量 (全局变量是系统自定的,是不可手动给值的,若想自己定义全局变量可考虑创建全局临时表!) 局部变量的定义: declare @变量名 数据类型 (局部变量只能 ...
- Eclipse 调试技巧
条件断点 顾名思义,是指当发生某种情况或者触发某种条件的情况下命中断点.常用的情形就是for循环中某个变量为xx值的时候命中断点类似的. 做法1:在debug视图中,BreakPoint View将所 ...