-
-
Notifications
You must be signed in to change notification settings - Fork 77
碰撞组件 Collider
YHH edited this page Aug 12, 2020
·
1 revision
Collider是继承于Component的抽象类,也是矩形/圆形/多边形碰撞组件的基类
对撞机的基本形状, 是Box/Circle/Polygon的基类,用于碰撞检查。例如:在你选用例如BoxCollider组件时,shape就会固定为Box类型。
当该值为true,这个碰撞器则是一个触发器,它将不会引起碰撞(物体会穿过另一个物体)
且你的组件同时继承 es.ITriggerListener
并实现其中的onTriggerEnter(other, local)
与onTriggerExit(other, local)
方法后会在物体穿过另一个物体或者离开另一个物体时触发该方法,如果该值为false则永远不会触发这两个方法。
class SampleComponent extends es.Component implements es.ITriggerListener {
/**
* 当碰撞器与触发碰撞器相交时调用。这是在触发碰撞器和触发碰撞器上调用的。
* 移动必须由Mover/ProjectileMover方法处理,以使其自动工作。
* @param other
* @param local
*/
public onTriggerEnter(other: es.Collider, local: es.Collider){
}
/**
* 当另一个碰撞器离开触发碰撞器时调用
* @param other
* @param local
*/
public onTriggerExit(other: es.Collider, local: es.Collider){
}
}
class MainScene extends es.Scene {
public async onStart(){
let entity = this.createEntity("player");
entity.addComponent(new BoxCollider());
entity.addComponent(new Mover());
entity.addComponent(new SampleComponent()).isTrigger = true;
}
}
在处理冲突时,physicsLayer可以用作过滤器。Flags类有帮助位掩码的方法
碰撞器在使用移动器移动时应该碰撞的层, 默认为所有层
如果为true,碰撞器将根据附加的变换缩放和旋转
这个对撞机在物理系统注册时的边界。
碰撞器的绝对位置。只读
封装变换。如果碰撞器没和实体一起旋转 则返回transform.rotation。只读
碰撞器的边界矩形。只读
将localOffset添加到实体。获取碰撞器几何图形的最终位置。 允许向一个实体添加多个碰撞器并分别定位,还允许你设置缩放/旋转
将localOffset添加到实体。获取碰撞器的最终位置。 这允许您向一个实体添加多个碰撞器并分别定位它们。
如果为true,碰撞器将根据附加的变换缩放和旋转
父实体会在不同的时间调用它(当添加到场景,启用,等等)
父实体会在不同的时候调用它(从场景中移除,禁用,等等)
复制该碰撞器