mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[ts][threejs] Allow passing material customizer to SkeletonMesh.
This commit is contained in:
parent
4df4bcfb76
commit
dd7a651144
@ -81,8 +81,9 @@
|
|||||||
var skeletonData = skeletonJson.readSkeletonData(assetManager.require(skeletonFile));
|
var skeletonData = skeletonJson.readSkeletonData(assetManager.require(skeletonFile));
|
||||||
|
|
||||||
// Create a SkeletonMesh from the data and attach it to the scene
|
// Create a SkeletonMesh from the data and attach it to the scene
|
||||||
skeletonMesh = new spine.SkeletonMesh(skeletonData, function (parameters) {
|
skeletonMesh = new spine.SkeletonMesh(skeletonData, (parameters) => {
|
||||||
parameters.depthTest = false;
|
parameters.depthTest = false;
|
||||||
|
parameters.alphaTest = 0.5;
|
||||||
});
|
});
|
||||||
skeletonMesh.state.setAnimation(0, animation, true);
|
skeletonMesh.state.setAnimation(0, animation, true);
|
||||||
mesh.add(skeletonMesh);
|
mesh.add(skeletonMesh);
|
||||||
|
|||||||
@ -32,9 +32,7 @@ import { MeshBatcher } from "./MeshBatcher";
|
|||||||
import * as THREE from "three";
|
import * as THREE from "three";
|
||||||
import { ThreeJsTexture } from "./ThreeJsTexture";
|
import { ThreeJsTexture } from "./ThreeJsTexture";
|
||||||
|
|
||||||
export interface SkeletonMeshMaterialParametersCustomizer {
|
export type SkeletonMeshMaterialParametersCustomizer = (materialParameters: THREE.ShaderMaterialParameters) => void;
|
||||||
(materialParameters: THREE.ShaderMaterialParameters): void;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class SkeletonMeshMaterial extends THREE.ShaderMaterial {
|
export class SkeletonMeshMaterial extends THREE.ShaderMaterial {
|
||||||
constructor (customizer: SkeletonMeshMaterialParametersCustomizer) {
|
constructor (customizer: SkeletonMeshMaterialParametersCustomizer) {
|
||||||
@ -103,7 +101,7 @@ export class SkeletonMesh extends THREE.Object3D {
|
|||||||
private vertices = Utils.newFloatArray(1024);
|
private vertices = Utils.newFloatArray(1024);
|
||||||
private tempColor = new Color();
|
private tempColor = new Color();
|
||||||
|
|
||||||
constructor (skeletonData: SkeletonData) {
|
constructor (skeletonData: SkeletonData, private materialCustomerizer: SkeletonMeshMaterialParametersCustomizer = (material) => { }) {
|
||||||
super();
|
super();
|
||||||
|
|
||||||
this.skeleton = new Skeleton(skeletonData);
|
this.skeleton = new Skeleton(skeletonData);
|
||||||
@ -138,7 +136,7 @@ export class SkeletonMesh extends THREE.Object3D {
|
|||||||
|
|
||||||
private nextBatch () {
|
private nextBatch () {
|
||||||
if (this.batches.length == this.nextBatchIndex) {
|
if (this.batches.length == this.nextBatchIndex) {
|
||||||
let batch = new MeshBatcher();
|
let batch = new MeshBatcher(10920, this.materialCustomerizer);
|
||||||
this.add(batch);
|
this.add(batch);
|
||||||
this.batches.push(batch);
|
this.batches.push(batch);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user