阶段8落盘

This commit is contained in:
tianmo committed 2026-08-29 21:36:04 +08:00
1 parent b5ac9552a1
commit a2de23a789
10 files changed
+419 -20

No files matched your search

+9
View File
@@ -13,6 +13,7 @@
<button class="scene-add" title="添加碰撞体" @click.stop="addCollider">+碰撞</button>
<button class="scene-add" title="添加路径" @click.stop="addPath">+路径</button>
<button class="scene-add" title="添加 Spine" @click.stop="addSpine">+Spine</button>
<button class="scene-add" :disabled="!canCopyObject" title="复制当前选中的场景对象" @click.stop="copySelectedObject">+Copy</button>
</div>
</div>
<div class="group-body" v-show="!collapsed.scene">
@@ -797,6 +798,12 @@ const activePath = computed(() => store.activeObjectType === 'path'
const activeSpine = computed(() => store.activeObjectType === 'spine'
? store.spines.find((item) => item.id === store.activeObjectId) || null
: null)
const canCopyObject = computed(() => {
if (store.activeObjectType === 'particle') return store.systems.some((item) => item.id === store.activeObjectId)
if (store.activeObjectType === 'collision') return store.colliders.some((item) => item.id === store.activeObjectId)
if (store.activeObjectType === 'path') return store.paths.some((item) => item.id === store.activeObjectId)
return store.spines.some((item) => item.id === store.activeObjectId)
})
const selectedSpineBone = computed(() => {
const spine = store.spines.find((item) => item.selectedBone && item.bones.some((bone) => bone.name === item.selectedBone))
return spine ? { spine, boneName: spine.selectedBone } : null
@@ -972,6 +979,7 @@ function addSys() { store.addSystem() }
function addCollider() { store.addCollider() }
function addPath() { store.addPath() }
function addSpine() { store.addSpine() }
function copySelectedObject() { store.duplicateSelectedObject() }
function addColliderTag() {
const collider = activeCollider.value
if (!collider) return
@@ -1445,6 +1453,7 @@ function toggleResourceLock(resourceId: number) {
background: #2e3a55; color: #cdf; font-size: 10px; white-space: nowrap; cursor: pointer;
}
.scene-add:hover { border-color: #7774ff; background: #45426f; color: #fff; }
.scene-add:disabled { opacity: 0.42; cursor: not-allowed; border-color: #343a4b; background: #252a38; color: #778095; }
.group-body { padding: 8px 10px 12px; }
.caret { display: inline-block; width: 12px; color: #667; font-size: 11px; }
.divider { height: 1px; background: #2a2a3c; margin: 8px 0; }