44 lines
1.5 KiB
TypeScript
44 lines
1.5 KiB
TypeScript
|
import { _decorator, Component, UITransform, Vec3 } from 'cc'
|
||
|
import { prefabOp } from './prefabOp'
|
||
|
import { PrefabNames } from './constant'
|
||
|
const { ccclass, property } = _decorator
|
||
|
|
||
|
import { sys, native } from 'cc'
|
||
|
|
||
|
@ccclass('main')
|
||
|
export class main extends Component {
|
||
|
private prefab: prefabOp = new prefabOp()
|
||
|
async start() {
|
||
|
let assetsPath = ''
|
||
|
if (sys.isNative) {
|
||
|
// 原生平台
|
||
|
assetsPath = native.fileUtils.getWritablePath() + '../assets'
|
||
|
} else {
|
||
|
// Web 平台
|
||
|
assetsPath = window.location.href.replace(/\/[^/]*$/, '') + '/assets'
|
||
|
}
|
||
|
console.log('Final Assets Path:', assetsPath)
|
||
|
const instance = await this.prefab.LoadAsync(PrefabNames.Login)
|
||
|
this.node.addChild(instance)
|
||
|
|
||
|
// 获取父节点和预制体的尺寸
|
||
|
const parentTransform = this.node.getComponent(UITransform)
|
||
|
const instanceTransform = instance.getComponent(UITransform)
|
||
|
|
||
|
if (parentTransform && instanceTransform) {
|
||
|
// 计算左下角坐标(考虑锚点)
|
||
|
const x = -parentTransform.width * (0.5 - parentTransform.anchorX) + instanceTransform.width * (0.5 - instanceTransform.anchorX)
|
||
|
const y = -parentTransform.height * (0.5 - parentTransform.anchorY) + instanceTransform.height * (0.5 - instanceTransform.anchorY)
|
||
|
|
||
|
console.log('Final Assets Path:', x, ' ', y)
|
||
|
instance.setPosition(new Vec3(x, y, 0))
|
||
|
instance.active = true
|
||
|
}
|
||
|
}
|
||
|
|
||
|
protected onDestroy(): void {
|
||
|
this.prefab.Release(PrefabNames.Login)
|
||
|
}
|
||
|
update(deltaTime: number) {}
|
||
|
}
|