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); } }