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/。
二、如何让飞机大战运行起来并让鼠标点击发射子弹?
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/。
相关文章推荐
- Unity 使用物理射线(Physics.Raycast),实现扇形区域碰撞检测三种方法
- [cocos2d-x][游戏开发]通过cocos2d-x实现简易飞机大战 08.游戏界面 碰撞检测
- Unity 3D中的射线与碰撞检测
- Unity 3D中的射线与碰撞检测
- 边做游戏边学android—4(飞机大战③添加敌机和碰撞检测)
- unity中htc vive物理射线检测碰撞的方法—Phsics.Raycast()
- Unity 射线检测碰撞
- 在Unity中用射线检测碰撞
- Unity 3D中的射线与碰撞检测
- Unity 使用物理射线(Physics.Raycast),实现扇形区域碰撞检测三种方法
- Unity 碰撞检测、射线
- pygame编写飞机大战(8)-碰撞检测
- unity中htc vive射线与UI碰撞检测-graphcs.Raycast()
- 边做游戏边学android—5(飞机大战④子弹发射和碰撞检测)
- [Unity]Ray射线物理检测碰撞和LayerMask的使用
- unity中射线碰撞检测总结
- unity学习之飞机大战制作 关键点(六) 子弹与敌机之间的碰撞
- 处理模型——使用逐三角形检查检测射线-模型碰撞
- Minecraft里的射线与方块碰撞检测算法
- unity中的碰撞检测