@senspark/ee
Version:
utility library for cocos creator
46 lines (40 loc) • 1.29 kB
text/typescript
const { ccclass, disallowMultiple, executeInEditMode, menu } = cc._decorator;
const Flags = cc.Object.Flags;
const LOCK_FLAGS =
Flags.IsPositionLocked |
Flags.IsRotationLocked |
Flags.IsScaleLocked |
Flags.IsAnchorLocked |
Flags.IsSizeLocked;
/** Used with NestedPrefab */
export class StaticComponent extends cc.Component {
private originalPosition?: cc.Vec2;
public onEnable(): void {
if (CC_EDITOR) {
// Save original position.
this.originalPosition = this.node.position;
// Apply lock flags.
this.node._components.forEach(comp => comp._objFlags |= LOCK_FLAGS);
this.node._objFlags |= LOCK_FLAGS;
}
}
public onDisable(): void {
if (CC_EDITOR) {
// Remove lock flags.
this.node._components.forEach(comp => comp._objFlags &= ~LOCK_FLAGS);
this.node._objFlags &= ~LOCK_FLAGS;
}
}
public update(delta: number): void {
if (CC_EDITOR) {
if (this.originalPosition !== undefined) {
// Restore original position.
this.node.position = this.originalPosition;
}
}
}
}