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);
} }
实现效果: