1、触发器和碰撞器有不同的触发条件;

参考官方文档,不同的组合触发条件;

https://ldc2.layabox.com/doc/?language=zh&nav=zh-js-4-16-0

  1. let staticCollider:Laya.PhysicsCollider = box.addComponent(Laya.PhysicsCollider);
  2. //设置为触发器,取消物理反馈
  3. staticCollider.isTrigger = true;

2、 运动类型刚体 开启后不受重力影响

  1. let _rigidBody = sphere.addComponent(Laya.Rigidbody3D) as Laya.Rigidbody3D;
  2. //开启运动类型刚体
  3. _rigidBody.isKinematic = true

3、A静态碰撞器 - B 动力学刚体触发器

(0)创建A

var plane = new Laya.MeshSprite3D(mesh);

plane.meshRenderer.sharedMaterial = new Laya.BlinnPhongMaterial()
plane.meshRenderer.sharedMaterial.albedoColor = glassColor
plane.meshRenderer.sharedMaterial.renderMode = Laya.BlinnPhongMaterial.RENDERMODE_TRANSPARENT;
//关闭材质的高光
plane.meshRenderer.sharedMaterial.specularColor = new Laya.Vector3(0,0,0);

let collider = plane.addComponent(Laya.PhysicsCollider)
let shape = new Laya.MeshColliderShape()
shape.mesh = mesh
collider.colliderShape = shape

(1)创建B

this.knock = this._scene.addChild(new Laya.MeshSprite3D(Laya.PrimitiveMesh.createBox(1,1,1)));
this.knock.transform.position = new Laya.Vector3(0,0,-10);
this.knock.name = "knock"
let rig = this.knock.addComponent(Laya.Rigidbody3D)
let shape = new Laya.BoxColliderShape(1,1,1)
rig.colliderShape = shape
//开启运动类型刚体
rig.isKinematic = true;
//改为触发器
rig.isTrigger = true;
this.knock.addComponent(KnockCtrl)

(2)为B绑定脚本

onTriggerEnter(){
/*
……省略若干逻辑代码
*/
console.log("触发器物理事件onTriggerEnter");
}

我们通常会遇到不同的场景需要不同的相机视角,例如:第一人称、第三人称。 第一人称的话,可以将输入控制脚本挂载在Camera上,直接控制Camera的position和rotation来实现; 对于第三人称,实际上我们控制脚本是用来控制场景中人物的动作的,所以此时我们需要根据人物的姿态的改变对相机姿态做适应性改变,达到相机跟随的效果。 话不多说,直接上代码 顶视图示例: 因为相机要跟随主角色,所以我这里默认相机(长方块)位置是相对于角色位置后面距离为10,并且LookAt主角色位置; 所以如何计算相机的位
共性: 碰撞 双方都需要加 碰撞 组件,至少有一个添加了刚 组件rigidbody; 异同:触发 碰撞 需要在 碰撞 勾选is trigger选项,刚 碰撞 需要使用物理动力模式(isKinematic 选项不能勾选) 二、OnTriggerEnter事件执行特点; OnTriggerEnter事件不是每帧调用的,它是基于RigidBody物理 碰撞 后调用的,不管事件所在的脚本是... 发生物理 碰撞 时,也就是 碰撞 生命周期内的第一次进入 碰撞 ,自动执行的生命周期虚方法。 onTriggerEnter 发生持续的物理 碰撞 时,也就是 碰撞 生命周期内的第二次 碰撞 碰撞 离开前,自动执行的生命周期虚方法。 onTriggerExit 物理 碰撞 结束时,自动执行的生命周期虚方法。
cocos和 Laya 自定义矩形 碰撞 TS版,可改js 注:本接口的中心点是在左上角,如不在左上角请您传入的时候更改坐标左上角,很简单的,就加或者减去矩形宽高就可以的,必须在同一坐标系下。 ```/** * @param x1 * @param y1 * @param width1 矩形1的宽 * @param height1 矩形1的高 * @param x2 * @param y2 * @param width
Laya Unpacker是一种开源工具,用于解包和提取 Laya Air引擎创建的游戏和应用程序的资源文件。它可以用于解密和解码 Laya Air引擎的资源文件,使开发人员可以查看和分析其中的内容。 Laya Unpacker提供了一个简单易用的界面,让用户可以方便地选择要解包的资源文件,并提供一些解包选项。解包后,用户可以浏览和查看解包出的资源文件,如图片、音频、视频、脚本等。这个工具还可以解析并提取出场景文件和骨骼动画文件,方便开发人员进行进一步的编辑和处理。 Laya Unpacker的使用对于开发人员来说非常有用。一方面,它可以帮助开发人员了解 Laya Air引擎的资源文件结构和内容,从而更好地理解和掌握引擎的使用。另一方面,它也可以作为一个资源提取工具,帮助开发人员从已发布的应用程序中提取出所需的资源,方便二次开发或进行资源替换。 总的来说, Laya Unpacker是一款功能强大且方便实用的工具,可以帮助开发人员更好地理解和使用 Laya Air引擎,并在开发过程中提高效率。无论是对于学习 Laya Air引擎的初学者还是对于有经验的开发人员来说, Laya Unpacker都是一个不可或缺的辅助工具。