Unity—碰撞(Collision),碰撞检测(Trigger),鼠标碰撞(Mouse)

Collision重写方法在物体上添加碰撞组件后可以使用

//在碰撞开始时调用一次
public void OnCollisionEnter(Collision other){}
//在碰撞过程中持续调用
public void OnCollisionStay(Collision other){}
//在碰撞结束后调用一次
public void onCollisionExit(Collision other){}
 

上诉代码中额other可以用来获取碰撞对象,假如我门现在又Cub1和Cub2,Cub1有碰撞C#脚本而Cub2没有那么不管是Cub1运动来碰撞Cub2或是Cub2运动来碰撞Cub1,永远能获取的对象都是Cub2

//假如利用碰撞来获取对象物体的name现在又Cub1,Cub2脚本在Cub1身上
public void OnCollisionEnter(Collision other)
{
    print(other.gaeObject.name)
}
//此时不管谁碰撞谁都是输出Cub2

Trigger在碰撞组件中勾选了触发器选项就会使用这个方法

//碰撞开始调用一次
public void OnTriggerEnter(Collider other){}
//碰撞过程中持续调用
public void OnTriggerStay(Collider other){}
//碰撞结束调用一次
public void OnTriggerExit(Collider other){}

使用方法和Collision一样没有区别

Collision和Trigger的区别

Collision在使用上不需要去勾选触发器,直接使用且物体还能保持碰撞特性

Trigger必须在勾选了触发器之后才能使用且现在的碰撞组件子是没有碰撞特性

Mose碰撞

//在碰撞开始调用一次
public void OnMouseEnter(){}
//在碰撞过程中持续调用
public void OnMouseover(){}
//在碰撞结束后调用一次
public void OnMouseExit(){}
//在碰撞中鼠标按下触发一次
public void OnMouseDown(){}
//在鼠碰撞中鼠标抬起触发一次
public void OnMouseUp(){}
//在碰撞中鼠标完整点击一次触发一次
public void OnMouseUpAsButton(){}
//在碰撞中按下鼠标持续调用
public void onMouseDrag(){}
//因为碰撞对像是鼠标所以无法获取对象信息也就没有参数

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值