Mesh

.GameObjects. Mesh

一个网格游戏对象. 网格游戏对象允许你渲染一组纹理顶点并进行操作 这些顶点的视图,例如旋转,平移或缩放. 支持从网格,模型数据或波前OBJ文件生成网格数据. 虽然您可以使用它来渲染3D对象,但它的主要用途是显示更复杂的对象 子画面,或者需要对顶点位置进行精细控制的子画面,以便 在游戏中实现特殊效果.请注意,渲染仍然使用相位器进行 正交相机(通过 `projectionMesh` 转换后,请参见 `setPerspective` , `setOrtho` ,和 `panZ` 方法).因此,所有深度和表面测试都在最终完成 正交空间. 渲染过程将遍历该网格的面,并渲染出每个面 那被认为是在摄像机的视野之内.没有使用深度缓冲区,因此, 您应该注意不要使用具有太多顶点或重叠几何图形的模型数据, 或者你可能会遇到深度战斗.网格被设计成允许更高级的 2D布局,而不是显示3D对象,尽管它可以做到这一点. 简而言之,如果你想重拍《孤岛危机》,就用3D引擎,而不是Mesh.然而,如果你愿意 轻松地将一些有趣的3D元素添加到游戏中,或者创建一些特殊效果,包括 顶点扭曲,这是适合你的对象.网格数据成为WebGL批处理的一部分, 就像标准的精灵一样,所以不引入任何额外的着色器开销.因为 网格只是将顶点生成到网络图像文件批处理中,就像其他精灵一样,你可以使用 网格上常见的游戏对象组件,如自定义管道,遮罩,混合模式 或者质地. 请注意,网格对象仅是WebGL,没有对应的画布. 网格原点始终为0.5 x 0.5,不能更改.

Constructor

new Mesh(scene, xopt, yopt, textureopt, frameopt, verticesopt, uvsopt, indiciesopt, containsZopt, normalsopt, colorsopt, alphasopt)

Since:
  • 3.0.0
Parameters:
Name Type Attributes Default Description
scene Phaser.Scene 此游戏对象所属的场景.一个游戏对象一次只能属于一个场景.
x number <optional>
这个游戏对象在世界上的水平位置.
y number <optional>
这个游戏对象在世界上的垂直位置.
texture string | Phaser.Textures.Texture <optional>
这个游戏对象将用来渲染的纹理的键或实例,存储在纹理管理器中.
frame string | number <optional>
这个游戏对象渲染的纹理中的一个可选帧.
vertices Array.<number> <optional>
顶点数组.要么是 `xy` pairs,要么是 `xyz` 如果 `containsZ` 参数是 `true` (但请参见注释).
uvs Array.<number> <optional>
紫外线对阵列.
indicies Array.<number> <optional>
可选顶点标记数组.如果没有,请传递 `null` 或空数组.
containsZ boolean <optional>
false 顶点数据是否包含 `z` 分量?注:如果不是,则假设为 `z=0` ,参见方法 `panZ` 或 `setOrtho` .
normals Array.<number> <optional>
可选顶点法线数组.如果没有,请传递 `null` 或空数组.
colors number | Array.<number> <optional>
0xffffff 一组颜色,每个顶点一个,或应用于所有顶点的单一颜色值.
alphas number | Array.<number> <optional>
1 一组阿尔法值,每个顶点一个,或应用于所有顶点的单个阿尔法值.

Extends

Members

active :boolean

Since:
  • 3.0.0
Inherited From:
Default Value:
  • true
此游戏对象的活动状态. 活动状态为 `true` 的游戏对象由场景更新列表处理(如果添加). 活动对象是指其逻辑和内部系统正在更新的对象.
Type:
  • boolean

alpha :number

Since:
  • 3.0.0
Inherited From:
游戏对象的阿尔法值. 这是一个全局值,影响整个游戏对象,而不仅仅是它的一个区域.
Type:
  • number

angle :number

Since:
  • 3.0.0
Inherited From:
Default Value:
  • 0
这个游戏物体的角度,用度数来表示. 相位器使用右手顺时针旋转系统,其中0°为右,90°为下,180°/-180°为左 而且-90是向上的. 如果您更喜欢使用弧度,请改为使用 `rotation` 属性.
Type:
  • number

blendMode :Phaser.BlendModes|string

Since:
  • 3.0.0
Inherited From:
设置游戏对象使用的混合模式. 这可以是一个常量,如`混合模式`,也可以是一个整数,如4(覆盖) 在网络总帐下,只有以下混合模式可用: * ADD * MULTIPLY * SCREEN * ERASE 根据浏览器的支持,Canvas有更多的可用空间. 您也可以在WebGL中创建自己的自定义混合模式. 混合模式在`画布`和`网络GL`下有不同的效果,不同的浏览器也有不同的效果,具体取决于 依靠支持.如果遇到新的混合模式,混合模式也会导致网络总帐批量刷新.为了这些 原因是要小心场景的构建和混合模式的频率 被使用.
Type:

(nullable) body :Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody|MatterJS.BodyType

Since:
  • 3.0.0
Inherited From:
Default Value:
  • null
如果这个游戏对象是为街机或物质物理学启用的,那么这个属性将包含一个对物理体的引用.
Type:

cameraFilter :number

Since:
  • 3.0.0
Overrides:
Default Value:
  • 0
控制此游戏对象是否由摄像机绘制的位掩码. 通常不直接设置,而是调用 `Camera.ignore` ,不过你可以 直接使用Camera.id属性设置该属性:
Type:
  • number
Example
this.cameraFilter |= camera.id..

data :Phaser.Data.DataManager

Since:
  • 3.0.0
Inherited From:
Default Value:
  • null
数据管理器. 它允许您存储,查询和获取特定于此游戏对象的密钥/值配对信息. 默认情况下为 `null` .如果使用 `getData` 或 `setData` 或 `setDataEnabled` ,则自动创建.
Type:

debugCallback :function

Since:
  • 3.50.0
您可以选择将此网格的顶点渲染到图形实例. 通过设置 `debugCallback` 和 `debugGraphic` 属性来实现这一点. 您可以通过 `Mesh.setDebug` 方法在一次调用中完成此操作,该方法将使用 内置调试功能.您也可以将其设置为自己的回调.回调 将被调用一次并发送以下参数: `debugCallback(src, meshLength, verts)` `src` 是正在调试的Mesh实例. `meshLength` 是网格顶点总数. `verts` 是已转换顶点坐标的数组. 若要禁用呈现,请将此属性设置回 `null` . 请注意,高顶点数网格将难以正常调试.
Type:
  • function

debugGraphic :Phaser.GameObjects.Graphics

Since:
  • 3.50.0
调试顶点将被绘制到的图形实例,如果 `setDebug` 有 接到电话.
Type:

defaultPipeline :Phaser.Renderer.WebGL.WebGLPipeline

Since:
  • 3.0.0
Inherited From:
Default Value:
  • null
这个游戏对象的初始网络游戏管道. 如果您在此游戏对象上调用 `resetPipeline` ,管道将被重置为默认值.
Type:

depth :number

Since:
  • 3.0.0
Inherited From:
场景中游戏对象的深度. 深度在某些环境中也称为 `z-index` ,允许您更改渲染顺序 游戏对象,而不实际移动它们在显示列表中的位置. 默认深度为零.深度更高的游戏对象 值总是呈现在具有较低值的值之前. 设置深度将在场景中排队深度排序事件.
Type:
  • number

displayHeight :number

Since:
  • 3.0.0
Inherited From:
此游戏对象的显示高度. 该值考虑了比例因子. 设置此值将调整游戏对象的缩放属性.
Type:
  • number

displayList :Phaser.GameObjects.DisplayList|Phaser.GameObjects.Layer

Since:
  • 3.50.0
Inherited From:
Default Value:
  • null
保存对包含此游戏对象的显示列表的引用. 当这个游戏对象被添加到一个场景或层时,它会被自动设置. 您应该将此属性视为只读.
Type:

displayWidth :number

Since:
  • 3.0.0
Inherited From:
此游戏对象的显示宽度. 该值考虑了比例因子. 设置此值将调整游戏对象的缩放属性.
Type:
  • number

faces :Array.<Phaser.Geom.Mesh.Face>

Since:
  • 3.50.0
包含属于此网格的面实例的数组. 一个面由3个顶点对象组成. 该数组在调用`addVertices`或`addOBJ`时填充.
Type:

frame :Phaser.Textures.Frame

Since:
  • 3.0.0
Inherited From:
这个游戏对象用来渲染的纹理框架.
Type:

hasPostPipeline :boolean

Since:
  • 3.50.0
Inherited From:
这个游戏对象有设置后期管道吗?
Type:
  • boolean

height :number

Since:
  • 3.0.0
Inherited From:
此游戏对象的原生(未缩放)高度. 更改此值不会改变游戏对象在游戏中呈现的大小. 为此,您需要设置游戏对象的比例( `setScale` )或使用 `displayHeight` 属性.
Type:
  • number

hideCCW :boolean

Since:
  • 3.50.0
渲染时,跳过任何不是逆时针方向的面? 启用此选项可在渲染过程中隐藏后向面. 禁用它以渲染所有面.
Type:
  • boolean

ignoreDestroy :boolean

Since:
  • 3.5.0
Inherited From:
Default Value:
  • false
如果此标志设置为 `true` ,此游戏对象将忽略对其销毁方法的所有调用. 这包括可能来自组,容器或场景本身的调用. 虽然它允许你跨场景的持续游戏对象,请理解你是完全 负责管理对此游戏对象的引用.
Type:
  • boolean

ignoreDirtyCache :boolean

Since:
  • 3.50.0
默认情况下,网格将检查其模型或视图变换是否 改变了每一帧,并且只重新计算顶点位置,如果他们有. 这避免了在不需要时在 `preUpdate` 步骤中的许多额外的数学运算. 但是,如果您在此网格上执行逐面或逐顶点操作, 例如补间一个面,或者移动它而不移动网格的其余部分, 然后,您可能需要禁用脏缓存,以便网格重新渲染 没错.您可以切换此属性来执行此操作.请注意离开 此设置为 `true` 将导致网格重新计算每一个的位置 顶点,每一帧.所以只有当你了解自己的时候,你才真正做到这一点 需要它.
Type:
  • boolean

(nullable) input :Phaser.Types.Input.InteractiveObject

Since:
  • 3.0.0
Inherited From:
Default Value:
  • null
如果这个游戏对象被允许输入,那么这个属性将包含一个交互对象实例. 一般不会直接设定.而是调用 `zGameObject.SetInteractive()` .
Type:

mask :Phaser.Display.Masks.BitmapMask|Phaser.Display.Masks.GeometryMask

Since:
  • 3.0.0
Inherited From:
此游戏对象在渲染过程中使用的遮罩.
Type:

modelPosition :Phaser.Math.Vector3

Since:
  • 3.50.0
包含该网格中顶点的3D位置的矢量3. 修改此属性的组件将允许您重新定位 顶点在网格中渲染.这发生在 `preUpdate` 阶段, 其中使用视图和投影矩阵变换每个顶点. 更改此属性将影响该网格渲染的所有顶点. 您也可以使用 `pan` 方法调整 `view` .
Type:

modelRotation :Phaser.Math.Vector3

Since:
  • 3.50.0
包含该网格中顶点的3D旋转的矢量3. 数值应以弧度给出,即.将顶点旋转90度 度,你可以用 `modelRotation.x = Phaser.数学. DegToRad(90)` . 修改此属性的组件将允许您旋转 网格中的顶点.这发生在 `preUpdate` 阶段, 其中使用视图和投影矩阵变换每个顶点. 更改此属性将影响该网格渲染的所有顶点.
Type:

modelScale :Phaser.Math.Vector3

Since:
  • 3.50.0
包含该网格中顶点的三维比例的矢量3. 修改此属性的组件将允许您进行缩放 网格中的顶点.这发生在 `preUpdate` 阶段, 其中使用视图和投影矩阵变换每个顶点. 更改此属性将影响该网格渲染的所有顶点.
Type:

name :string

Since:
  • 3.0.0
Inherited From:
Default Value:
  • ''
此游戏对象的名称. 默认情况下是空的,Phaser从不填充,这留给开发人员使用.
Type:
  • string

parentContainer :Phaser.GameObjects.Container

Since:
  • 3.4.0
Inherited From:
此游戏对象的父容器(如果有).
Type:

pipeline :Phaser.Renderer.WebGL.WebGLPipeline

Since:
  • 3.0.0
Inherited From:
Default Value:
  • null
此游戏对象的当前网络总帐管道.
Type:

pipelineData :object

Since:
  • 3.50.0
Inherited From:
存储管道特定数据的对象,由该游戏对象使用的管道读取.
Type:
  • object

postPipeline :Array.<Phaser.Renderer.WebGL.Pipelines.PostFXPipeline>

Since:
  • 3.50.0
Inherited From:
这个游戏对象用于后期渲染效果. 管道按照它们在此数组中出现的顺序进行处理. 如果直接修改此数组,请确保将 相应地设置 `hasPostPipeline` 属性.
Type:

projectionMatrix :Phaser.Math.Matrix4

Since:
  • 3.50.0
该网格的投影矩阵. 用 `setPerspective` 或 `setOrtho` 方法更新.
Type:

renderFlags :number

Since:
  • 3.0.0
Overrides:
Default Value:
  • 15