CocosCyberpunk/assets/test/test-reflect.ts
2023-02-22 09:50:51 +08:00

69 lines
1.6 KiB
TypeScript

import { _decorator, Component, Node, ReflectionProbe, TextureCube, Material, MeshRenderer, renderer } from 'cc';
const { ccclass, property, executeInEditMode } = _decorator;
@ccclass('test_reflect')
@executeInEditMode
export class test_reflect extends Component {
@property(ReflectionProbe)
_probe: ReflectionProbe | undefined;
@property(ReflectionProbe)
get probe () {
return this._probe;
}
set probe (v) {
this._probe = v;
this.refresh();
}
@property(Material)
_material: Material | undefined
@property(Material)
get material () {
return this._material
}
set material (v) {
this._material = v;
this.refresh();
}
refresh () {
if (!this.material || !this.probe) {
return;
}
let mr = this.getComponent(MeshRenderer)
let mat = new renderer.MaterialInstance({ parent: this.material })
mat.setProperty('mainTexture', mr.bakeSettings._probeCubemap);
mr.setMaterialInstance(mat, 0)
}
start () {
this.refresh();
}
create () {
// let probe = this.probe
// probe._createProbe();
// probe.probe.initBakedTextures()
// probe.probe._renderObjects = [];
// probe.probe._resetCameraParams();
// probe.probe._attachCameraToScene();
// probe.probe._needRender = true;
// let textures = probe.probe.bakedCubeTextures;
// let cube = new TextureCube()
// cube.mipmaps = [{
// front: textures[0].,
// }]
}
update (deltaTime: number) {
}
}