1
0
forked from Rowland/EG

1.优化碰撞面板保存修改参数

This commit is contained in:
陈横 2025-09-18 10:51:50 +08:00
parent a1380f9a46
commit bd7a18a917

View File

@ -14,7 +14,7 @@ from direct.actor.Actor import Actor
from direct.gui import DirectGui
from idna import check_label
from jinja2.compiler import has_safe_repr
from panda3d.core import Vec3, Vec4, transpose, TransparencyAttrib, PartGroup, ColorAttrib, NodePath
from panda3d.core import Vec3, Vec4, transpose, TransparencyAttrib, PartGroup, ColorAttrib, NodePath, Point3
from scene import util
from direct.gui.DirectGui import DirectLabel, DirectFrame
from panda3d.core import TextNode
@ -179,6 +179,9 @@ class PropertyPanelManager:
self._propertyLayout.addStretch()
# 重置碰撞相关标志,确保下次选择时正常显示
self._just_added_collision = False
# 强制更新布局
if self._propertyLayout:
self._propertyLayout.update()
@ -564,6 +567,19 @@ class PropertyPanelManager:
if hasattr(self, '_current_info_panel'):
del self._current_info_panel
# 清理碰撞相关控件引用
collision_controls = [
'collision_status_text', 'collision_shape_combo', 'collision_shape_label',
'collision_visibility_button', 'collision_button', 'collision_layout', 'collision_group',
'collision_pos_x', 'collision_pos_y', 'collision_pos_z',
'collision_radius', 'collision_width', 'collision_length', 'collision_height',
'collision_capsule_radius', 'collision_capsule_height',
'collision_normal_x', 'collision_normal_y', 'collision_normal_z'
]
for name in collision_controls:
if hasattr(self, name):
delattr(self, name)
# 清理其他可能的控件引用
other_controls = ['scale_x', 'scale_y', 'scale_z', 'pos_x', 'pos_y', 'pos_z']
for name in other_controls:
@ -8762,7 +8778,7 @@ except Exception as e:
# 清理之前的参数控件
self._clearCollisionParameterControls()
# 隐藏显示/隐藏按钮
# 隐藏显示/隐藏按钮(如果存在)
if hasattr(self, 'collision_visibility_button'):
self.collision_visibility_button.setVisible(False)
@ -8775,6 +8791,8 @@ except Exception as e:
except Exception as e:
print(f"创建碰撞面板失败: {e}")
import traceback
traceback.print_exc()
def _addCollisionParameterControls(self, model, layout, start_row, shape_type):
"""添加碰撞参数调整控件"""