啦啦啦~把每天的学习进度搬到这里来~\(≧▽≦)/~


1. 按空格键发射炮弹

在playercontroller里面添加如下代码:

var projectile_bl:GameObject
if(Input.GetKeyDown(KeyCode.Space)){
        Instantiate(projectile_bl,transform.position,transform.rotation);
        }


2.实现陨石的自由下落。 

创建陨石,Scale缩放分别设置为0.6,0.6,1,位置将Y设置为3 

接着添加陨石向下落的脚本,文件名为RockController,代码如下


var speed:float=2.0;
function Update () {
    transform.Translate(0,-speed*Time.deltaTime,0);
}




3.实现陨石的随机降落。

将RockController的Update代码改为:

function Update () {
	if(transform.position.y<-1.3)
		transform.position=new Vector3(Random.Range(-3,3),3.5,0);

	transform.Translate(0,-speed*Time.deltaTime,0);
}




4.太空背景的移动

拖一个精灵到层次面板,把星星的图片拖拽上去,把位置改为0,0,1,改动缩放比例为6,6,1。

之后改动摄像机的位置,改为0,0,-8。

创建BackgroundController脚本,添加如下代码:

var speed:float=1.0;
function Update () {
	if(transform.position.y<-4.0)
		transform.position=new Vector3(0,0,1);
		
	transform.Translate(0,-speed*Time.deltaTime,0);
}




5.太空背景的循环移动

修改BackgroundController脚本。

var speed:float=1.0;
function Update () {
	if(transform.position.y<-3.9)
		transform.position=new Vector3(0,8,1);
		
	transform.Translate(0,-speed*Time.deltaTime,0);
}

把摄像机的背景颜色改成黑色。



6. 碰撞的准备—添加组件

把炮弹的预置文件拖到层次面板上,选择炮弹,移除胶囊碰撞体,并添加碰撞体,Component里Physic,Capsule碰撞体。

在Capsule Collider里勾上is Trigger属性,并且把Y设为0.12,Radlus设为0.05,Height设为0.62


添加刚体组件,使炮弹具有物理效果。取消使用重力选项。把Freeze Position的Z和Rotation的XYZ都勾上。

选中炮弹,为它添加标签projectile。把层次面板上的projectile拖到预制件上。删除场景中的projectile。



2016-1-18

1.碰撞检测函数

为陨石和飞机添加立方体碰撞器碰撞组件,勾选上IS TRIGGER属性,为陨石添加RigidBody刚体属性,取消重力选项,并和炮弹做一样的约束。

要碰撞的两个物体必须在同一个平面上。

打开陨石控制脚本,添加碰撞检测脚本。

function OnTriggerEnter(other:Collider){
	if(other.tag=="projectile"){
		transform.position=new Vector3(Random.Range(-2.6,2.6),3.5,0);
		Destroy(other.gameObject);
		}
<span style="white-space:pre">	<span style="font-family:Menlo;"><span style="color:#009695;">if</span><span style="color:#444444;">(</span><span style="color:#444444;">other</span><span style="color:#444444;">.</span><span style="color:#444444;">tag</span><span style="color:#444444;">==</span><span style="color:#f57c00;">"</span><span style="color:#f57c00;">Player</span><span style="color:#f57c00;">"</span><span style="color:#444444;">)</span>
<span style="color:#444444;">        </span><span style="color:#444444;">transform</span><span style="color:#444444;">.</span><span style="color:#444444;">position</span><span style="color:#444444;">=</span><span style="color:#009695;">new</span><span style="color:#444444;"> </span><span style="color:#444444;">Vector3</span><span style="color:#444444;">(</span><span style="color:#444444;">Random</span><span style="color:#444444;">.</span><span style="color:#444444;">Range</span><span style="color:#444444;">(-</span><span style="color:#f57c00;">2.6</span><span style="color:#444444;">,</span><span style="color:#f57c00;">2.6</span><span style="color:#444444;">),</span><span style="color:#f57c00;">3.5</span><span style="color:#444444;">,</span><span style="color:#f57c00;">0</span><span style="color:#444444;">);</span></span></span>
}




2016-1-19

昨天看了一小小小节就又去打红警去了哈哈哈得抓紧啦。


1. 爆炸效果

先把预置文件夹的精灵拖到层次面板。改名为explosionEnemy,position y=0.5;Scale 0.88,0.98,1

把有七张小图的爆炸效果图片拖拽到上边,初始位置为Tiling,偏移量叫Offset,根据简单地数学运算控制要显示第几张图片。


新建脚本文件explosionController

添加如下代码:

#pragma strict
var index:int=0;
var frameNumber:int=7;//帧数
private var frameRate:float=0;//帧数率
private var myTime:float=0;//计时器
private var myIndex:int=0;//帧计数

function Start () {
	frameRate=1.0f/frameNumber;
}

function Update () {
	myTime += Time.deltaTime;
	myIndex=myTime*frameNumber;
	index=myIndex%frameNumber;
<span style="white-space:pre">	</span>//设置Tiling与Offset属性
renderer.material.mainTextureScale=new Vector2(frameRate,1);
	renderer.material.mainTextureOffset=new Vector2(index*frameRate,0);
	
	if(index==frameNumber-1) Destroy(gameObject);
}