unity 怎么判断碰撞的物体?我的场景里面有A模型(cube) 和B模型(cube),在A和B上都加了物理属性,(都会落到地上) 现在我想写一个碰撞脚本,只有当A和B相撞才会触发...请问各位怎么写?我看

来源:学生作业帮助网 编辑:作业帮 时间:2024/04/28 21:02:43
unity 怎么判断碰撞的物体?我的场景里面有A模型(cube) 和B模型(cube),在A和B上都加了物理属性,(都会落到地上) 现在我想写一个碰撞脚本,只有当A和B相撞才会触发...请问各位怎么写?我看

unity 怎么判断碰撞的物体?我的场景里面有A模型(cube) 和B模型(cube),在A和B上都加了物理属性,(都会落到地上) 现在我想写一个碰撞脚本,只有当A和B相撞才会触发...请问各位怎么写?我看
unity 怎么判断碰撞的物体?
我的场景里面有A模型(cube) 和B模型(cube),在A和B上都加了物理属性,(都会落到地上) 现在我想写一个碰撞脚本,只有当A和B相撞才会触发...请问各位怎么写?
我看了个老外是这么写的:
function OnControllerColliderHit(hit:ControllerColliderHit){
if(hit.gameObject.tag == "one") //被撞的物体的名字为“one”
{
aa.text="1";
}
}
但是我这没一点反映...

unity 怎么判断碰撞的物体?我的场景里面有A模型(cube) 和B模型(cube),在A和B上都加了物理属性,(都会落到地上) 现在我想写一个碰撞脚本,只有当A和B相撞才会触发...请问各位怎么写?我看
上面这个老外用的是 OnControllerColliderHit(),这个是用于角色碰撞的,物体如果附加了Charactor Controller(Unity自带的用于角色控制的脚本)则使用这个函数检测碰撞,这是不需要加刚体的.一般的刚体之间碰撞使用OnCollisionEnter(),范围触发用OnTriggerEnter(),如果你是让两个CUBE碰撞,请确保其中一个附加了RigidBody,然后这样写(我用C#):
void OnCollisionEnter(Collision collision)
{
Debug.Log("You touch me");
}
collision是个变量,通过它可以获得你所碰撞的目标的属性以及碰撞点信息和相对速度,如:
collision.collider.某个组件或脚本.
void OnCollisionEnter(Collision collision)
{
if(collision.collider.tag=="enemy")//tag是物体的标签,相当于物体的类别名称.在每一个物体的组件栏(也就是加脚本的那个区域)的最上面可以找到,默认的是UnTagged,也就是没有标签,你找找,然后点击会出现一个下拉列表,默认的已有几个Tag,你也可以加自定义的,点击下拉列表最下方的Add Tag就可以加Tag,最后选择一个Tag作为物体的名称就可以了.
{
Destroy(collision.collider.gameObject);//如果检测到对方是敌人,则消灭对方.
}
}

去查询自带的帮助文档,搜索OnCollision,有详细的范例
你的例子里面不是单纯的碰撞判断,还能给予碰撞的刚体推力。具体搜索帮助文档OnControllerColliderHit。
至于你没有反应,可能是因为标签没有定义,hit.gameObject.tag == "one"并不是物体名字为“one”而是物体的标签(tag)名称为“one”,而tag是需要预先定义的。

全部展开

去查询自带的帮助文档,搜索OnCollision,有详细的范例
你的例子里面不是单纯的碰撞判断,还能给予碰撞的刚体推力。具体搜索帮助文档OnControllerColliderHit。
至于你没有反应,可能是因为标签没有定义,hit.gameObject.tag == "one"并不是物体名字为“one”而是物体的标签(tag)名称为“one”,而tag是需要预先定义的。
如果想判断碰撞物体的名称,应该是hit.gameObject.name == "one"

收起

unity 怎么判断碰撞的物体?我的场景里面有A模型(cube) 和B模型(cube),在A和B上都加了物理属性,(都会落到地上) 现在我想写一个碰撞脚本,只有当A和B相撞才会触发...请问各位怎么写?我看 UNITY 2d中“物体下落碰撞后停止”的代码怎么写, unity怎么我写了以下的代码,物体碰撞后怎么没反应啊.A物体B物体 function OnCollisionEnter (collision:Collision){ Debug.LogWarning("."); Destroy(this.gameObject); unity中为什么我控制一个character controller物体,走向有capsule collider的物体,无法触发碰撞事件OnCollisionEnterOnCollisionExitOnCollisionStay就是这三个中的任意一个都不行 求unity带房子还公路的地形场景 Unity Pacific的《Unity》 歌词 unity C# 一个public gameobject 怎么在 同一个场景下的另一个script中 引用这个gameobject获取属性? 两物体碰撞后,如何判断物体的运动方向 unity设置物体层次unity如何用代码来设置物体的层级,depth, Unity is strength 怎么读?中文版的. unity怎么调整平行光的方向 如何判断物体碰撞后的运动方向 unity物体碰撞播放爆炸效果动画后销毁,怎么写代码?unity物体碰撞后“播放爆炸效果动画”,怎么写代码?弄一天了,我是不是太笨了! Unity的一个程序,+我详说 unity 中,如何改变实例(instantiate)的方向unity 中,我用raycast 得到碰撞点的法向量,就是hit.normal,如何将在这个位置(hit.point)生成的模型的方向设置成hit.normal? 如何调节Maya粒子与物体的碰撞值?默认的碰撞值太大了,我想调小一点,请问怎么调呢?(我是两个物体同时与粒子碰撞,我只需要改一个物体的碰撞值.) Unity中已经给物体写上移动脚本,但带着character controller 的物体碰到障碍物时会推开障碍物我想让物体碰到障碍物就无法前进,该用什么代码来判断,或者该怎么做~ unity点击button而不会碰撞检测到button后面的物体界面上的button后面有物体,每次点击button,button的click事件会响应,物体的碰撞检测也会响应,如何使物体碰撞检测失效呢