您的位置:首页 > 移动开发 > Unity3D

unity之飞机大战和碰撞检测、射线

2014-12-20 17:43 573 查看
一、飞机大战的界面:





二、如何让飞机大战运行起来并让鼠标点击发射子弹?

void Update ()

{

float height = 0;

float x = Input.GetAxis ("Vertical")*Time.deltaTime*speed;

float z = Input.GetAxis ("Horizontal")*Time.deltaTime*speed;

if(Input.GetKey(KeyCode.S))

{

height-=Time.deltaTime*speed;

}

if(Input.GetKey(KeyCode.W))

{

height+=Time.deltaTime*speed;

}

transform.Translate (-z,height,-x);

if(Input.GetButton("Fire1") ||Input.GetKey(KeyCode.Space)){

//&& Time.time>nextTime

//nextTime = fireTime + Time.time;

GameObject go= GameObject.Instantiate(bullet,transform.position,Quaternion.identity) as GameObject;

go.rigidbody.AddForce(0,0,-5000);

Destroy(go,0.3f);

}

三、碰撞检测

1、在unity3d中,能检测碰撞发生的方式有两种,一种是利用碰撞器,另一种则是利用触发器。这两种方式的应用非常广泛。为了完整的了解这

两种方式,我们必须理解以下概念:

(一)碰撞器是一群组件,它包含了很多种类,比如:Box Collider,Capsule Collider等,这些碰撞器应用的场合不同,但都必须到GameObjecet身上。

(二)所谓触发器,只需要在检视面板中的碰撞器组件中勾选IsTrigger属性选择框。

(三)给主角添加刚体(Rigidbody)组件,并且取消刚体组件的重力选项UseGravity。

2、触发信息检测:

1、当进入触发器:MonoBehaviour.OnTriggerEnter( Collider other )

2、当退出触发器:MonoBehaviour.OnTriggerExit( Collider other )

3、当逗留触发器:MonoBehaviour.OnTriggerStay( Collider other )

3、触发信息检测:

//触发接触的那一帧被调用

void OnTriggerEnter(Collider other) {

Debug.Log("enter");

Debug.Log(other.gameObject.name);

}

//触发接触的每帧都被调用

void OnTriggerStay(Collider other) {

Debug.Log("Stay");

}

// 触发结束被调用

void OnTriggerExit(Collider other) {

Debug.Log("Exit");

}

4、碰撞信息检测

1、当进入碰撞器:MonoBehaviour.OnCollisionEnter( Collision collisionInfo )

2、当退出碰撞器:MonoBehaviour.OnCollisionExit( Collision collisionInfo )

3、当逗留碰撞器:MonoBehaviour.OnCollisionStay( Collision collisionInfo )

欢迎来到我们的狗刨网,我们的网址是:http://www.gopedu.com/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: