SubwayViewComp.ts 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. import { Color, MeshRenderer, RenderableComponent, SkeletalAnimation, _decorator } from "cc";
  2. import { ecs } from "../../../../../extensions/oops-plugin-framework/assets/libs/ecs/ECS";
  3. import { CCComp } from "../../../../../extensions/oops-plugin-framework/assets/module/common/CCComp";
  4. import { Subway } from "../Subway";
  5. import { SubwayViewController } from "./SubwayViewController";
  6. import { smc } from "../../common/SingletonModuleComp";
  7. import { Puppet } from "../../puppet/puppet";
  8. import { PuppetModelComp } from "../../puppet/model/PuppetModelComp";
  9. import { PuppetAnimatorType } from "../../puppet/model/PuppetEnum";
  10. import { SubwayEnum } from "../model/SubwayEnum";
  11. import { Label3D } from "../../../components/label-3d";
  12. import { SubwayGenPuppetComp } from "../bll/SubwayGenPuppet";
  13. const { ccclass, property } = _decorator;
  14. /** 地铁显示组件 */
  15. @ccclass('SubwayViewComp') // 定义为 Cocos Creator 组件
  16. @ecs.register('SubwayView', false) // 定义为 ECS 组件
  17. export class SubwayViewComp extends CCComp {
  18. @property({ type: Label3D, tooltip: '角色动画' })
  19. label: Label3D = null!;
  20. /** 地铁控制器 */
  21. controller: SubwayViewController = null!;
  22. /** 视图层逻辑代码分离演示 */
  23. onLoad() {
  24. const subway = this.ent as Subway;
  25. this.controller = this.node.addComponent(SubwayViewController);
  26. this.controller.subway = subway;
  27. const timer = setTimeout(() => {
  28. this.updateCount(subway?.SubwayModel.colorArr.length)
  29. clearTimeout(timer)
  30. }, 0)
  31. }
  32. updateCount(count = 0) {
  33. if (this.label)
  34. this.label.string = `${count}`
  35. }
  36. reset() {
  37. this.node.destroy();
  38. }
  39. }