55 lines
1.2 KiB
TypeScript
Raw Normal View History

2023-11-17 18:29:39 +08:00
import { _decorator, Component, Node } from 'cc';
import { app } from '../../../App';
import GRoleDefault from '../../../battle/base/role/GRoleDefault';
import { GData } from '../../../consts/GData';
import { v2 } from 'cc';
import { Prefab } from 'cc';
import { instantiate } from 'cc';
import { v3 } from 'cc';
import { ModeRenderHitText } from './ModeRenderHitText';
const { ccclass, property } = _decorator;
export enum ModeRenderEvent{
//受击
HIT = "ModeRenderEvent_HIT"
}
@ccclass('ModeRender')
export class ModeRender extends Component {
//受击预制体
@property(Prefab)
hitPrefab:Prefab;
onLoad(){
app.event.on(ModeRenderEvent.HIT,this.onHit,this);
}
protected onDestroy(): void {
app.event.off(ModeRenderEvent.HIT,this.onHit,this);
}
//受击
onHit(role:GRoleDefault,hit:number){
if(!role.get()) return;
let rolePos = GData.WorldCanvas.camera.worldToScreen(role.node.worldPosition);
let hitNode = instantiate(this.hitPrefab);
this.node.addChild(hitNode);
hitNode.position = rolePos.add(v3(0,100,0));
hitNode.getComponent(ModeRenderHitText).setText(hit);
}
}