1.忽略碰撞:
有些时候我们不想让指定的两对象发生碰撞,即要忽略他们的碰撞
public Transform ball;
void Start() {
Physics.IgnoreCollision(ball.collider, this.collider);
}
2.射线
射线是3D世界中一个点向一个方向发射无终点的线。在unity3d中我们发射的射线一旦与其他的碰撞器发生碰撞,射线将停止发射。在游戏制作过程中我们可以通过判断射线是否发生了碰撞,并且可以判断射线和谁发生了碰撞。应用范围非常广泛,如射击类游戏中用它来判断是否射中目标。
(1)、我们要想在游戏中发射一条射线,必须要有两个元素,一个起始点,一个方向。
(2)、Ray.origin:射线起点
(3)、Ray.direction:射线的方向
(4)、创建一条射线的方法:
Ray (origin : Vector3, direction : Vector3)
(5)、Origin是射线的起点,direction是射线的方向。
(6)、首先在场景中创建一个CUBE,创建一个c#文件,并输入如下代码:
public Transform explosion;
void Update ()
{
//获取鼠标点击事件
if(Input.GetMouseButtonDown(0))
{
//定义一条射线
Ray ray=Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
//如果射线发生碰撞
if(Physics.Raycast (ray, out hit, 100))
{
Transform theClonedExplosion; //实例化物体
//hit.point为碰撞点的坐标
theClonedExplosion =Instantiate(explosion, hit.point, transform.rotation)as Transform;
}
}
}
如果大家还有什么困难的话可以关注我的日志:
http://unity.gopedu.com/home.php?mod=space&do=blog&view=me
还可以关注我们的狗刨网: