snrg.net
当前位置:首页 >> unity3D碰撞判断 >>

unity3D碰撞判断

给两个物体都加上碰撞器(Collider),其中一个加上Rigidbody,然后用OnTriggerEnter或OnCollisionEnter方法进行检测

这个我想只要在碰撞事件里面加上一些判断就好的.void OnCollisionEnter(Collision collision) { if(发射==1) {物理碰撞的位移 }else{其他的工作} }抱歉了,可能想得过于简单了.新手,如果见解不当,请指正.非常感谢.

void OnCollisionEnter(Collision collision)//碰撞进入 { Destroy (collider .gameObject );//销毁碰撞物 } 我想把这个给主角就可以了.至于判定是什么类型的物体,可以尝试用tag来进行标记.我也是新手,如果见解不当,希望指正,多谢.

你写的是 触发检测,不是碰撞检测.关于你的这个问题,你可以判断一下这个触发的对象本身所带的碰撞器类型. void ontriggerstay2d(collider2d other) { if (other.getcomponent()) return; if (other.getcomponent()) { //执行内容 } }或者你对于带有boxcollider2d的不想被触发的物体使用一个tag标记一下或放到一个碰撞层中,然后检测这个物体的tag是否是带有boxcollider2d的tag,然后return;或者直接忽略触发器所在的碰撞层和不想被触发的碰撞层就可以了.

据我所知,最细致的方法是使用meshCollider,但是这种方法不推荐,对于计算资源的消耗有些大.我比较常用的就是用一些boxCollider组合在一起做一个没有太追究细节的碰撞检测.

上面这个老外用的是 OnControllerColliderHit(),这个是用于角色碰撞的,物体如果附加了Charactor Controller(Unity自带的用于角色控制的脚本)则使用这个函数检测碰撞

Collider.OnCollisionEnter 进入碰撞function OnCollisionEnter (collisionInfo : Collision) : voidDescription描述OnCollisionEnter is called when this collider/rigidbody has begun touching another rigidbody/collider.当collider/rigidbody开始触动另一个

这个不必加射线吧,既然是落地或者碰到空中的盒子也算,那就用碰撞检测事件,当物体和指定对象(地)发生碰撞后发出事件,对事件就行判断处理就行了

在粒子属性下有一个OnTrigger需要设置,而且还要写粒子触发函数,百度搜索粒子触发函数,有更详细的介绍

RaycastHit rayHit; void Update() { Vector3 fwd = transform.TransformDirection(Vector3.forward); if (Physics.Raycast(transform.position, fwd, 10)) print("There is something

网站首页 | 网站地图
All rights reserved Powered by www.snrg.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com