unity, collider/trigger on children】的更多相关文章

参考:http://answers.unity3d.com/questions/410711/trigger-in-child-object-calls-ontriggerenter-in-pa.html…
物体A,物体B(都含有collider组件) collider触发条件:A和B至少一方是  未勾选is Kinematic的rigidbody,且都未勾选 is trigger.当只有一方是rigidbody时,必须含有rigidbody组件的一方主动触碰(一个没有rigidbody组件的物体去触碰有rigidbody组件的物体,是不会触发碰撞的). trigger触发条件:A和B至少一方是rigidbody,且至少一方有勾选 is trigger. 官方链接:http://docs.unity…
(2d与3d的Collider可以相互存在,但是无法相互协作,如2d是无法检测3d的,反之,一样) 在目前掌握的情况分析,在Unity中参与碰撞的物体分2大块:1.发起碰撞的物体.2.接收碰撞的物体. 1. 发起碰撞物体有:Rigodbody , CharacterController . 2. 接收碰撞物体由:所有的Collider . 工作的原理为:发生碰撞的物体中必须要有“发起碰撞”的物体.否则,碰撞不响应. 比如:墙用BoxCollider ,所以墙与墙之间无反应. 比如:一个带有Rig…
EventTrigger 上主要的方法有PointerEnter.PointerExit.PointerDown.PointerUp.PointerClick............都会显示在面板上面: 在UGUI上响应EventTrigger事件 所有的事件响应 都需要在响应的UGUI上面挂载 Selectable,然后通过 添加组件EventTrigger进行响应事件. UI默认有响应事件的 如:Button Toggle 等不需要进行添加,因为事件响应组件都继承自Selectable 2.…
Unity 3D里两个碰撞体之间发生碰撞可以用OnCollision族函数和OnTrigger族函数来获知和处理.Unity官方给出了两张可发生碰撞的组合表: Collision detection occurs and messages are sent upon collision   Static Collider Rigidbody Collider Kinematic  Rigidbody Collider Static  Trigger Collider Rigidbody  Tri…
在关于Unity中的刚体和碰撞器的相关用法(一)的基础上 有一个plane平面,一个ball球体,都挂了碰撞器,ball挂了刚体Rigidbody,写了一个脚本ball挂载在球体上,球体从空中落下装机plane 碰撞检测 一.当两个物体发生碰撞时,也就是两个节点的碰撞器相互碰撞的时候,就会去调用节点上所关联的所有脚本对象的固定的函数 1: OnCollisionEnter: 开始碰撞; 2: OnCollisionExit: 碰撞离开; 3: OnCollisionStay 碰撞持续; ball…
对Unity各种API的细节进行测试 Common 一些Unity基础操作的性能测试 Animation/Animator Animation Play/Stop测试 关于Animation动画事件的几项测试 关于AnimationState的测试 Animator的“当前剪辑CurrentAnimatorStateInfo” Animation在每一帧中的执行顺序测试 Rigidbody/Collider 刚体Collider包围测试(重叠后,挤出和质量的影响) Rigidbody Sweep…
盒子碰撞器(BoxCollider2D)是Unity2D中常用的碰撞器,所有为碰撞器,顾名思义,就是用于检测物体之间的碰撞情况的,Unity2D里面除了BoxCollider2D碰撞器之外还集成Box2D物理引擎和一系列2D物理组件,分别如下: 1 Rigid-body组件(RigidBody2D)支持static/kinematic/dynamic 刚体, 质量, 线性/角 速度, 拖动和自动休眠,和固定角度限制. 2 圆形碰撞器(CircleCollider2D)支持圆心和半径 3 盒子碰撞…
物理系统基于collider, 没有collider的物体不会发生任何主动和被动的物理交互,也不会产生trigger相关消息. 当且仅当A和B都有碰撞体时,两者才有可能发生交互,才有可能产生trigger消息. 碰撞体collider分为两大类:trigger collider, 非trigger collider trigger collider就是触发器,一个勾选了Is trigger的 collider不产生任何物理交互,只在其它collider进入其范围时触发一个OnTriggerEnt…
接着上一篇文章说 因为代码简短且思路简单 所以我就把这几个功能汇总为一篇文章 因为我之前就是做游戏外挂的 经过验证核实,**飞车的复位点检测.圈数检测就是以下的方法实现的 至于反向检测和赛道长度计算,没去深入研究,不过应该也八九不离十 在告诉大家个小秘密: **飞车的复位点检测和圈数检测利用以下文章中的代码思路可以做出外挂 感兴趣的可以试试!我只是技术交流,不是传播外挂,别打我 复位点检测优化: 首先感谢 @太粗难进 他的原话: “不过 你知道 高架桥么?就是 如果大的轮船经过 会 把 桥 中间…
1.Kinematic和刚体之间的碰撞事件 Unity官方有一个详细的碰撞关系表:http://docs.unity3d.com/Manual/CollidersOverview.html 但其实可以精简为以下几点: 1.两个勾选kinematic的刚体碰撞器不会发生碰撞. 2.勾选Kinematic的刚体碰撞器不可和无刚体碰撞器发生碰撞,但可以有触发事件. 3.两个碰撞器想要触发事件,必须其中一个带有刚体. 4.发生碰撞必然会双向触发,不存在单向触发的情况. 2.Collider和Trigge…
  刚体(Rigidbody)的官方(摘自Unity3d的官方指导书<Unity4.x从入门到精通>)解释如下: Rigidbody(刚体)组件可使游戏对象在物理系统的控制下来运动,刚体可接受外力与扭矩力用来保证游戏对象像在真实世界中那样进行运动.任何游戏对象只有添加了刚体组件才能受到重力的影响,通过脚本为游戏对象添加的作用力以及通过NVIDIA物理引擎与其他的游戏对象发生互动的运算都需要游戏对象添加了刚体组件. 个人理解就是刚体是用来模拟物体受到一个力作用时候的表现,这个从刚体中的参数就可以…
测试方式: 每个对象做大范围正弦移动,创建1000-5000个对象,保证场景分割树的实时更新,并测试帧率 测试脚本: 移动脚本: using UnityEngine; using System.Collections; public class Test1 : MonoBehaviour { public Rigidbody rigidbodyObj; void FixedUpdate() { , )) { : transform.position = Vector3.forward * Mat…
正常情况下只要按下了Edit Collider按钮,鼠标停在polygon collider 2D的一条边上,就会出现一个虚拟的新顶点,此时如果按下鼠标,新顶点就创建出来了. 但是我今天遇到一个奇怪的情况就是鼠标放到polygon collider 2D的边上,并不出现虚拟新顶点,点击也不会创建新顶点.后来发现,原来是我的gameObject的Scale值太大了,是一千多,而其上添加的polygon collider 2D是常规尺寸,也就是说此polygon collider 2D在gameOb…
什么是Collider 碰撞器组件在Unity引擎中触发物理碰撞的最基本的条件. 可以这样说,假如一个游戏中没有物理碰撞系统是不可能的. 什么是Rigidbody 通过物理模拟的控制对象的位置. Rigidbody组件添加到一个对象将其运动的控制下统一的物理引擎.即使没有添加任何代码,Rigidbody对象将由重力向下拉,将反应与传入的对象如果正确的对撞机碰撞组件也存在. Rigidbody也有脚本API,允许您力量应用于对象和物理现实的方式控制它.例如,一辆汽车的行为可以指定在力量方面应用的轮…
原来我的场景中有一个平面Plane带Mesh Collider碰撞器组件,一个主角Hero带有一个Box Collider碰撞器和有重力的Rigidbody刚体组件,主角可以放在平面上. 在导入场景后,隐藏平面Plane,给一个地板添加一个Mesh Collider碰撞器,把主角放地板上,结果主角居然直接穿透过去,很奇怪. 然后我先隐藏平面Plane,再导入场景,再给一个地板添加一个Mesh Collider碰撞器,把主角放地板上,结果主角可以放在上面. 在官方文档中看到这段话: There a…
分类:Unity.C#.VS2015 创建日期:2016-05-02 一.简介 车轮碰撞体 (Wheel Collider)专门用于创建汽车或其他移动交通工具. 车轮碰撞体是一种针对地面车辆的特殊碰撞体.它有内置的碰撞检测.车轮物理系统及有滑胎摩擦的参考体.除了车轮,该碰撞体也可用于其他的游戏对象. 二.相关属性 1.Mass 质量.该项用于设置车轮碰撞体的质量. 2.Radus 半径.该项用于设置车轮碰撞体半径大小. 3.Suspension Distance 悬挂距离.该项用于设置车轮碰撞体…
一.介绍 目的:通过Unity自带的组件完成游戏场景中的碰撞检测功能. 软件环境:Unity 2017.3.0f3 二.实现过程 1,在面板中点击Add Component按钮 2,添加Box Collider组件 3,调整碰撞范围 4,运行程序后测试效果…
关闭mesh Renderer以便查看mesh Collider "For Unity 5, we must also select "Convex" on the Mesh Collider, in order for the Mesh Collider to work correctly with the updated Physics Engine." 如果不勾选Convex,能运行,但console下会出错误提示: “Non-convex MeshColli…
一,destroy gameObject 删除名为xxx的gameObject 错误方法1: Destroy(xxx); 以上方法之所以错误,是因为Destroy在下一帧才生效,而在本帧之内xxx还存在,所以如果接下来的逻辑对xxx是否已经立即删除有依赖.很多时候会有依赖,比如在删除xxx之后又创建同名的xxx,并使用findChild获取并修改之,则此时将无法确定到底是修改了已删除的还是修改了新创建的,则会造成莫名奇妙的逻辑错误.又比如本帧内需要正确的childCount值,则上面方法也不行.…
Collider位置和角色的动作不一致会导致Mesh互相镶嵌,让游戏失真. 想象一扇门的Collider没随它打开的动画移动,结果就是你看着门开着却穿不过去. 而我遇到的情况是:     角色在执行跑动动画时头部偏离了它的Collider, 假如前面是堵墙她的头部就会没有阻挡的钻进去.要解决这个问题,需要让Collider随动画一起移动.Unity中设定的Collider会随着Prefab的Transfrom运动, 但播放动画时只是模型的Mesh随骨骼移动, 因此需要将Collider和头部的骨…
void OnGUI() { if (Event.current != null && Event.current.type == EventType.mouseDown) { )) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) { GameObject selectedGmObj = hit.collider…
U3D中的一般包围框如 boxcollider, meshcollider, capsule collider等都会随物体旋转而旋转.然而polygon collider却不会. 补充:原来所有2D包围盒都不会随物体旋转,所有3D包围盒都会随物体旋转. 当物体旋转了,对于2D物体,就要移除原来的包围盒,重新挂一次2D包围盒.…
比如下面鸭子模型,只用一个box collider难以很好地吻合其的外形. 我们可以为它添加两个box collider,如下图所示: 注意: 1,colliders一定要添加在模型根节点(即图中dock节点上). 2,如果想让模型是动态的,不要忘了添加Rigidbody. 另外,如果需要在脚本里对两个collider分别编程的话,若直接在脚本里get这两个collider,由于都是box collider,也没有特殊标识,所以区分不开.一个简单但不太完美的办法是在脚本中定义两个public变量…
遍历所有直接子节点(immediate children): foreach (Transform child in transform) { // do whatever you want with child transform object here }或int childCount = transform.childCount;for (int i=0; i<childCount; i++) {    Transform child=transform.GetChild (i);} 注:…
using UnityEngine; using System.Collections; using UnityEngine.Events; using UnityEngine.EventSystems; using System.Collections.Generic; using UnityEngine .UI ; public class DistrictBgEvent { //门户小界面按钮功能 private EventTrigger m_eventTrigger; public st…
当碰撞器Collision组件身上的属性IsTrigger勾选为True时,该碰撞器就成了触发器. 区别:1.能够产生的回调和函数不同.碰撞器:MonoBehaviour.OnCollisionEnter/Stay/Exit触发器:MonoBehaviour.OnTriggerEnter/Stay/Exit2.物体与碰撞器接触,会弹起/撞开.物体与触发器接触,会穿透!…
public void changeShaderForMeAndAllMyChildren(){ Transform[] childrenTransformList = GetComponentsInChildren<Transform>();//注意GetComponentsInChildren包括自身 foreach (Transform transform in childrenTransformList) { transform.GameObject.GetComponent<M…
转帖:http://www.glenstevens.ca/unity3d-best-practices/ 另外可以参考:http://devmag.org.za/2012/07/12/50-tips-for-working-with-unity-best-practices/ 组件的拆分可以参考:http://gameprogrammingpatterns.com/component.html,此网站上列出了很多的游戏开发中的设计模式,非常值得认真研读. 论坛里的讨论也很有价值:https://…
自制Unity小游戏TankHero-2D(4)关卡+小地图图标+碰撞条件分析 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅为学习Unity之用.图片大部分是自己画的,少数是从网上搜来的.您可以到我的github页面(https://github.com/bitzhuwei/TankHero-2D)上得到工程源码. 本篇主要记录关卡解析器.小地图图标和对碰撞的原理的探索,需要耐心分析. 关卡解析器 在…