输出碰撞物体的名字
rigibody Messages里面声明了3个方法
(刚接触立马分开 待一段时间离开)
- 接触的那一刻
- 接触时
- 分开时
void OnCollisionEnter(Collision collision) {
//collision.collider
//获取碰撞到的游戏物体身上的Collider组件
string name = collision.collider.name;
//获取碰撞到游戏物体的名字
print(name); //把一个字符串输出显示到控制台
}
碰撞 警告 错误
碰撞检测
//碰撞检测
void OnCollisionEnter(Collision collision) {
if (collision.collider.tag == "PickUp"){
Destroy(collision.collider.gameObject);
}
}
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour
{
private Rigidbody rd; //声明一个钢体组件rd (通过rd去操作组件)
void Start()
{
rd = GetComponent<Rigidbody>(); //得到游戏物体的钢体组件并赋给rd
}
// Update is called once per frame
void Update()
{ //如何得到左右按键(A D)和前后按键(W S)
float h = Input.GetAxis("Horizontal");//得到水平轴的值 是个小数 h返回—1到1的值(负数A键)
float v = Input.GetAxis("Vertical");
rd.AddForce(new Vector3(h, 0, v)*5); // 让它一直运动 通过 . 去调用方法
//new Vector3(x,y,z)创建1个向量(一个向量有3个值)
//*5速度放大5倍
}
void OnCollisionEnter(Collision collision) {
//collision.collider 获取碰撞到的游戏物体身上的Collider组件
//string name = collision.collider.name;//获取碰撞到游戏物体的名字
//print(name);//把一个字符串输出显示到控制台
if (collision.collider.tag == "PickUp")
{
Destroy(collision.collider.gameObject);
}
}
}
触发检测
PickUp设置为触发器 不再是碰撞器了
这时食物是触发器 主角身上是碰撞检测 检测不到 所以直接穿过去了
触发区域
//触发检测
void OnTriggerEnter(Collider collider){
if (collider.tag == "PickUp"){
Destroy(collider.gameObject);
}
}
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour
{
private Rigidbody rd; //声明一个钢体组件rd (通过rd去操作组件)
void Start()
{
rd = GetComponent<Rigidbody>(); //得到游戏物体的钢体组件并赋给rd
}
// Update is called once per frame
void Update()
{ //如何得到左右按键(A D)和前后按键(W S)
float h = Input.GetAxis("Horizontal");//得到水平轴的值 是个小数 h返回—1到1的值(负数A键)
float v = Input.GetAxis("Vertical");
rd.AddForce(new Vector3(h, 0, v)*5); // 让它一直运动 通过 . 去调用方法
//new Vector3(x,y,z)创建1个向量(一个向量有3个值)
//*5速度放大5倍
}
void OnCollisionEnter(Collision collision) {
//collision.collider 获取碰撞到的游戏物体身上的Collider组件
//string name = collision.collider.name;//获取碰撞到游戏物体的名字
//print(name);//把一个字符串输出显示到控制台
if (collision.collider.tag == "PickUp"){
Destroy(collision.collider.gameObject);
}
}
void OnTriggerEnter(Collider collider){
if (collider.tag == "PickUp"){
Destroy(collider.gameObject);
}
}
}
触发检测 没有物理的那种碰撞效果
上一篇:控制食物的旋转
下一篇:Roll A Ball显示分数和胜利检测