我使用的版本是 1.7.2 beta附件是测试例子,是一个nodejs工程。用node app.js --port=8888启动服务器,浏览器访问localhost:8888
等界面显示之后在console中输入test()
这会创建两张牌,第一张牌在右侧,第二张在左侧。
第一张牌使用了localRotation,可以看到旋转无效了,console中的matrix也可以看到是不变的
第二张牌直接rotate,可以看到旋转了。
顺便问一下,要想知道Sprite3D.load加载完成,只能继承并重写onAsynLoaded?
-------------------------------------------------------------------------------------ok, 我检查了worldMatrix,确实在设置了localRotation之后就不再变化了,why?
以下是log
var bom=tileroot.getChildAt(1).getChildAt(0).clone(); //创建对象
undefined
bom.transform.worldMatrix //世界矩阵
Matrix4x4elements: Float32Array[16]0: 0.85106498003005981: 02: 03: 04: 05: 0.85106498003005986: 07: 08: 09: 010: 0.851064980030059811: 012: 331.600006103515613: -5.099999944384835e-1414: -3.03830003738403315: 1buffer: (...)byteLength: (...)byteOffset: (...)length: (...)Symbol(Symbol.toStringTag): (...)__proto__: TypedArray__proto__: Object
bom.transform.localRotation=new Laya.Quaternion(0, 0,0,0); [i][b]//设置了localRotation[/b][/i]
Quaternion {elements: Float32Array[4]}
bom.transform.worldMatrix
//再看看worldMatrix,是一样的Matrix4x4elements: Float32Array[16]0: 0.85106498003005981: 02: 03: 04: 05: 0.85106498003005986: 07: 08: 09: 010: 0.851064980030059811: 012: 331.600006103515613: -5.099999944384835e-1414: -3.03830003738403315: 1buffer: (...)byteLength: (...)byteOffset: (...)length: (...)Symbol(Symbol.toStringTag): (...)__proto__: TypedArray__proto__: Object
bom.transform.rotate(new Laya.Vector3(10, 0, 0), true);
//旋转他,但是没用,wordMatrix不变undefined
bom.transform.worldMatrix
Matrix4x4elements: Float32Array[16]0: 0.85106498003005981: 02: 03: 04: 05: 0.85106498003005986: 07: 08: 09: 010: 0.851064980030059811: 012: 331.600006103515613: -5.099999944384835e-1414: -3.03830003738403315: 1buffer: (...)byteLength: (...)byteOffset: (...)length: (...)Symbol(Symbol.toStringTag): (...)__proto__: TypedArray__proto__: Object
var bom2=tileroot.getChildAt(1).getChildAt(0).clone();
undefined
bom2
MeshSprite3D {_render: MeshRender, _geometryFilter: MeshFilter, _projectionViewWorldMatrix: Matrix4x4, _projectionViewWorldUpdateLoopCount: -1, _projectionViewWorldUpdateCamera: null…}
bom2.transform.worldMatrix
Matrix4x4elements: Float32Array[16]0: 0.85106498003005981: 02: 03: 04: 05: 0.85106498003005986: 07: 08: 09: 010: 0.851064980030059811: 012: 331.600006103515613: -5.099999944384835e-1414: -3.03830003738403315: 1buffer: (...)byteLength: (...)byteOffset: (...)length: (...)Symbol(Symbol.toStringTag): (...)__proto__: TypedArray__proto__: Object
//做个对比,没有设置localRotation的对象旋转是有效的bom2.transform.rotate(new Laya.Vector3(10, 0, 0), true);
undefined
bom2.transform.worldMatrix
Matrix4x4elements: Float32Array[16]0: 0.85106498003005981: 02: 03: 04: 05: -0.71410447359085086: -0.462997347116470347: 08: 09: 0.4629973471164703410: -0.714104473590850811: 012: 331.600006103515613: -5.099999944384835e-1414: -3.03830003738403315: 1buffer: (...)byteLength: (...)byteOffset: (...)length: (...)Symbol(Symbol.toStringTag): (...)__proto__: TypedArray__proto__: Object