69 lines
1.6 KiB
TypeScript
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) {
|
|
|
|
}
|
|
}
|
|
|
|
|