import { _decorator, BoxCollider2D, Button, CircleCollider2D, Collider2D, Color, Component, Enum, find, Node, NodeEventType, Sprite } from 'cc'; import { WaterColorHex, WaterColors } from '../TakeGobletGlobalInstance'; const { ccclass, property, executeInEditMode } = _decorator; @ccclass('Water') @executeInEditMode export class Water extends Component { @property({ type: Enum(WaterColors) }) private _color: WaterColors = WaterColors.Blue; @property(Sprite) sprite: Sprite = null! get color() { return this._color; } set color(value: WaterColors) { this._color = value; this.updateColor(); } start() { this.updateColor(); } onLoad() { this.updateColor(); } private updateColor() { const sprite = this.getComponent(Sprite); if (sprite) { sprite.color = new Color(WaterColorHex[this._color]); } } // 外部调用设置颜色 public setColor(color: WaterColors) { this.color = color; } }