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);
} }

实现效果

  

5.x KEY : Download   Reference

Unity3D 5.x 简单实例 - 发射炮弹的更多相关文章

  1. Unity3D 5.x 简单实例 - 脚本编写

    1,Vector3 类型变量存储向量坐标值 Vector3.forward Vector3(0,0,1) Vector3.up Vector3(0,1,0) Vector3.right Vector3 ...

  2. Unity3D 5.x 简单实例 - 孤岛场景搭建

    1,如果我们的Unity 5.X 是从这个地址下载的,安装后不会有资源包,则需要从Unity3D官网下载资源包: Standard Assets (Unity 5.x) 下载 下载后安装后,Unity ...

  3. Unity3D自定义编辑器简单实例

    MenuItem:在标题栏自定义菜单.需要在Editor文件夹内创建脚本,无需挂载.但是注意其下的函数必须为静态函数. using UnityEngine; using UnityEditor; pu ...

  4. SpringMVC笔记——SSM框架搭建简单实例

    落叶枫桥 博客园 首页 新随笔 联系 订阅 管理 SpringMVC笔记——SSM框架搭建简单实例 简介 Spring+SpringMVC+MyBatis框架(SSM)是比较热门的中小型企业级项目开发 ...

  5. Hibernate(二)__简单实例入门

    首先我们进一步理解什么是对象关系映射模型? 它将对数据库中数据的处理转化为对对象的处理.如下图所示: 入门简单实例: hiberante 可以用在 j2se 项目,也可以用在 j2ee (web项目中 ...

  6. 最新 Eclipse IDE下的Spring框架配置及简单实例

    前段时间开始着手学习Spring框架,又是买书又是看视频找教程的,可是鲜有介绍如何配置Spring+Eclipse的方法,现在将我的成功经验分享给大家. 本文的一些源代码来源于码农教程:http:// ...

  7. 修改js confirm alert 提示框文字的简单实例

    修改js confirm alert 提示框文字的简单实例: <!DOCTYPE html> <html> <head lang="en"> & ...

  8. 利用navicat创建存储过程、触发器和使用游标的简单实例

    利用navicat创建存储过程.触发器和使用游标的简单实例 标签: navicat存储过程触发器mysql游标 2013-08-03 21:34 15516人阅读 评论(1) 收藏 举报  分类: 数 ...

  9. 【转】Android Https服务器端和客户端简单实例

    转载地址:http://blog.csdn.net/gf771115/article/details/7827233 AndroidHttps服务器端和客户端简单实例 工具介绍 Eclipse3.7 ...

随机推荐

  1. iOS开发系列--视图切换

    概述 在iOS开发中视图的切换是很频繁的,独立的视图应用在实际开发过程中并不常见,除非你的应用足够简单.在iOS开发中常用的视图切换有三种,今天我们将一一介绍: UITabBarController ...

  2. A*寻路算法

    对于初学者而言,A*寻路已经是个比较复杂的算法了,为了便于理解,本文降低了A*算法的难度,规定只能横竖(四方向)寻路,而无法直接走对角线,使得整个算法更好理解. 简而言之,A*寻路就是计算从起点经过该 ...

  3. MySQL 指定各分区路径

    200 ? "200px" : this.width)!important;} --> 介绍 可以针对分区表的每个分区指定各自的存储路径,对于innodb存储引擎的表只能指定 ...

  4. Sharing A Powerful Tool For Application Auto Monitor

    本文分享的这个应用监控小工具,本来是我在五年多以前开发实现的windows服务监控的一个windows服务.听上去比较拗口吧,是的,这个应用一开始就是个监控windows服务的windows服务. 记 ...

  5. ASP.NET MVC 5 - 创建连接字符串(Connection String)并使用SQL Server LocalDB

    您创建的MovieDBContext类负责处理连接到数据库,并将Movie对象映射到数据库记录的任务中.你可能会问一个问题,如何指定它将连接到数据库? 实际上,确实没有指定要使用的数据库,Entity ...

  6. EF:打开Oracle连接时报错

    基础提供程序在 Open 上失败. The underlying provider failed on Open. 解决:安装最新的ODTwithODAC121024.

  7. 使用Emit把Datatable转换为对象集合(List<T>)

    Emit生成动态方法部分摘自网上,但是经过修改,加入了对委托的缓存以及类结构的调整,使之调用更简洁方便.大致的思路是:要实现转换datatable到某个指定对象的集合,本质是实现转换一个datarow ...

  8. Linux Hadoop2.7.3 安装(单机模式) 二

    Linux Hadoop2.7.3 安装(单机模式) 一 Linux Hadoop2.7.3 安装(单机模式) 二 YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的Jo ...

  9. Juint整合Log4j

    一般Log4j配置在web.xml中,在单元测试时,不需要启动Tomcat,所有Log4j找不到配置文件 在测试类中手动加载 配置文件 PropertyConfigurator.configure(& ...

  10. jsdoc

    一.javascript注释规范 我们在编写javascript文件的时候,一般会添加一些注释.例如一些文件.类.方法和属性都应该用合适的标记和类型进行注释.这里不但方便我们的阅读,也能养成一个好的习 ...