1、触发器和碰撞器有不同的触发条件;
参考官方文档,不同的组合触发条件;
https://ldc2.layabox.com/doc/?language=zh&nav=zh-js-4-16-0
-
let staticCollider:Laya.PhysicsCollider = box.addComponent(Laya.PhysicsCollider);
-
//设置为触发器,取消物理反馈
-
staticCollider.isTrigger = true;
2、
运动类型刚体 开启后不受重力影响
-
let _rigidBody = sphere.addComponent(Laya.Rigidbody3D) as Laya.Rigidbody3D;
-
//开启运动类型刚体
-
_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都是一个不可或缺的辅助工具。