完善3D解剖功能

增加TextTip标题功能
This commit is contained in:
shenjianxing 2025-02-13 17:21:18 +08:00
parent a852f53706
commit e3bc40bf8b
25 changed files with 1052 additions and 93 deletions

View File

@ -255,6 +255,144 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1552595721778161119
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 717044875136205173}
- component: {fileID: 337693509821327650}
- component: {fileID: 3287580684998733913}
- component: {fileID: 778419354692156357}
- component: {fileID: 3554365675561402507}
m_Layer: 5
m_Name: ActiveBack
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &717044875136205173
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1552595721778161119}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1900737864650650971}
m_Father: {fileID: 2150121155661727416}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 56.1, y: 0}
m_SizeDelta: {x: 102, y: 34}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &337693509821327650
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1552595721778161119}
m_CullTransparentMesh: 1
--- !u!114 &3287580684998733913
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1552595721778161119}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 8c77a2052664d0d4e9be892444deddd1, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &778419354692156357
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1552595721778161119}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
m_Name:
m_EditorClassIdentifier:
MarkType: 0
CustomComponentName: BtnPrefab
CustomComment:
mComponentName: UnityEngine.UI.Button
--- !u!114 &3554365675561402507
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1552595721778161119}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 3287580684998733913}
m_OnClick:
m_PersistentCalls:
m_Calls: []
--- !u!1 &1717582815541303580
GameObject:
m_ObjectHideFlags: 0
@ -288,7 +426,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 8286140371639898903}
- {fileID: 4371217188189964319}
- {fileID: 4277527408350916377}
m_Father: {fileID: 3644811849542302248}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
@ -750,6 +888,69 @@ MonoBehaviour:
CustomComponentName: BodyContent
CustomComment:
mComponentName: RectTransform
--- !u!1 &3374657125894741702
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4277527408350916377}
- component: {fileID: 4365302675092903581}
m_Layer: 5
m_Name: SubBtns
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &4277527408350916377
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3374657125894741702}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4371217188189964319}
m_Father: {fileID: 7134505307210740835}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 158.1, y: -16.5}
m_SizeDelta: {x: 112.2, y: 67}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &4365302675092903581
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3374657125894741702}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 1
m_Spacing: 0
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &4155433307319882472
GameObject:
m_ObjectHideFlags: 0
@ -881,7 +1082,206 @@ MonoBehaviour:
LeftContent: {fileID: 3644811849542302248}
DragBtn: {fileID: 4284720363514511568}
DragBack: {fileID: 540967449707403434}
ActiveBtn: {fileID: 6692543268377793545}
ActiveBack: {fileID: 3554365675561402507}
BodyItem: {fileID: 1682419669064365991}
--- !u!1 &5049956726037078213
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3149154824631645571}
- component: {fileID: 2773094088659386531}
- component: {fileID: 1776019555825648282}
m_Layer: 5
m_Name: Label
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &3149154824631645571
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5049956726037078213}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 165414428222451636}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2773094088659386531
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5049956726037078213}
m_CullTransparentMesh: 1
--- !u!114 &1776019555825648282
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5049956726037078213}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u901F\u9690"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 97936a7b3a86809479ac89371e95b079, type: 2}
m_sharedMaterial: {fileID: 168401102475399263, guid: 97936a7b3a86809479ac89371e95b079, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 16
m_fontSizeBase: 16
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &5424837477357509673
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2150121155661727416}
- component: {fileID: 660724380524038662}
m_Layer: 5
m_Name: SubBtns
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
--- !u!224 &2150121155661727416
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5424837477357509673}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 717044875136205173}
m_Father: {fileID: 165414428222451636}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
m_AnchorMax: {x: 0, y: 0.5}
m_AnchoredPosition: {x: 158.1, y: -16.5}
m_SizeDelta: {x: 112.2, y: 67}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &660724380524038662
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5424837477357509673}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 59f8146938fff824cb5fd77236b75775, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Padding:
m_Left: 0
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 1
m_Spacing: 0
m_ChildForceExpandWidth: 0
m_ChildForceExpandHeight: 0
m_ChildControlWidth: 0
m_ChildControlHeight: 0
m_ChildScaleWidth: 0
m_ChildScaleHeight: 0
m_ReverseArrangement: 0
--- !u!1 &6081794716422948279
GameObject:
m_ObjectHideFlags: 0
@ -1016,6 +1416,149 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &6579582680906227604
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 165414428222451636}
- component: {fileID: 7781704004794031748}
- component: {fileID: 8625378328012599150}
- component: {fileID: 4952609964016307496}
- component: {fileID: 6692543268377793545}
m_Layer: 5
m_Name: ActiveBtn
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &165414428222451636
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6579582680906227604}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 3149154824631645571}
- {fileID: 2150121155661727416}
m_Father: {fileID: 3644811849542302248}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 102, y: 34}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &7781704004794031748
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6579582680906227604}
m_CullTransparentMesh: 1
--- !u!114 &8625378328012599150
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6579582680906227604}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: 8c77a2052664d0d4e9be892444deddd1, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &4952609964016307496
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6579582680906227604}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
m_Name:
m_EditorClassIdentifier:
MarkType: 0
CustomComponentName: BtnPrefab
CustomComment:
mComponentName: UnityEngine.UI.Toggle
--- !u!114 &6692543268377793545
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6579582680906227604}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 9085046f02f69544eb97fd06b6048fe2, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Navigation:
m_Mode: 3
m_WrapAround: 0
m_SelectOnUp: {fileID: 0}
m_SelectOnDown: {fileID: 0}
m_SelectOnLeft: {fileID: 0}
m_SelectOnRight: {fileID: 0}
m_Transition: 1
m_Colors:
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
m_ColorMultiplier: 1
m_FadeDuration: 0.1
m_SpriteState:
m_HighlightedSprite: {fileID: 0}
m_PressedSprite: {fileID: 0}
m_SelectedSprite: {fileID: 0}
m_DisabledSprite: {fileID: 0}
m_AnimationTriggers:
m_NormalTrigger: Normal
m_HighlightedTrigger: Highlighted
m_PressedTrigger: Pressed
m_SelectedTrigger: Selected
m_DisabledTrigger: Disabled
m_Interactable: 1
m_TargetGraphic: {fileID: 8625378328012599150}
toggleTransition: 1
graphic: {fileID: 0}
m_Group: {fileID: 0}
onValueChanged:
m_PersistentCalls:
m_Calls: []
m_IsOn: 0
--- !u!1 &6581193976255814611
GameObject:
m_ObjectHideFlags: 0
@ -1047,6 +1590,7 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 7134505307210740835}
- {fileID: 165414428222451636}
m_Father: {fileID: 1062102287437619772}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0.5}
@ -1096,6 +1640,140 @@ MonoBehaviour:
CustomComponentName: BodyContent
CustomComment:
mComponentName: RectTransform
--- !u!1 &7171058547146952871
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1900737864650650971}
- component: {fileID: 3989764932603018357}
- component: {fileID: 6149747433283151208}
m_Layer: 5
m_Name: Label
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1900737864650650971
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7171058547146952871}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 717044875136205173}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3989764932603018357
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7171058547146952871}
m_CullTransparentMesh: 1
--- !u!114 &6149747433283151208
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7171058547146952871}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u8FD4\u56DE"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 97936a7b3a86809479ac89371e95b079, type: 2}
m_sharedMaterial: {fileID: 168401102475399263, guid: 97936a7b3a86809479ac89371e95b079, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 16
m_fontSizeBase: 16
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &7452435723576309381
GameObject:
m_ObjectHideFlags: 0
@ -1325,7 +2003,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &4371217188189964319
RectTransform:
m_ObjectHideFlags: 0
@ -1339,11 +2017,11 @@ RectTransform:
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 5515100320481424769}
m_Father: {fileID: 7134505307210740835}
m_Father: {fileID: 4277527408350916377}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 163.2, y: 0}
m_AnchoredPosition: {x: 56.1, y: 0}
m_SizeDelta: {x: 102, y: 34}
m_Pivot: {x: 0.5, y: 1}
--- !u!222 &3785937962185117584

View File

@ -729,7 +729,7 @@ GameObject:
- component: {fileID: 6190215392520032477}
- component: {fileID: -1321096431916288768}
m_Layer: 0
m_Name: UI3DBodyInfo
m_Name: UIBody3DInfo
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0

View File

@ -224,6 +224,157 @@ MonoBehaviour:
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!1 &1375299334909793470
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4002782857371670254}
- component: {fileID: 3875271533057727503}
- component: {fileID: 3613689092755446169}
- component: {fileID: 7384942873950341134}
m_Layer: 5
m_Name: Title
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4002782857371670254
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1375299334909793470}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 530869619305514304}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: -25.498718}
m_SizeDelta: {x: 0, y: 50.9974}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3875271533057727503
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1375299334909793470}
m_CullTransparentMesh: 1
--- !u!114 &3613689092755446169
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1375299334909793470}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: f4688fdb7df04437aeb418b961361dc5, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\u8FD9\u91CC\u662F\u6807\u9898"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 97936a7b3a86809479ac89371e95b079, type: 2}
m_sharedMaterial: {fileID: 168401102475399263, guid: 97936a7b3a86809479ac89371e95b079, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 24
m_fontSizeBase: 24
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_enableWordWrapping: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 1
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
--- !u!114 &7384942873950341134
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1375299334909793470}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0d51f3a7c41ab0346b49ae50d456bece, type: 3}
m_Name:
m_EditorClassIdentifier:
MarkType: 0
CustomComponentName: ContentText
CustomComment:
mComponentName: TMPro.TextMeshProUGUI
--- !u!1 &1597918456588028124
GameObject:
m_ObjectHideFlags: 0
@ -309,6 +460,7 @@ MonoBehaviour:
m_Script: {fileID: 11500000, guid: 5ed9b43aa6da2fd49af65b4ab0b85fc2, type: 3}
m_Name:
m_EditorClassIdentifier:
Title: {fileID: 3613689092755446169}
Des: {fileID: 5150898215778594440}
BtnContent: {fileID: 8598386973860236803}
Btn: {fileID: 1491398146821546139}
@ -378,7 +530,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text:
m_text: "\u8FD9\u91CC\u662F\u6807\u9898"
m_isRightToLeft: 0
m_fontAsset: {fileID: 11400000, guid: 97936a7b3a86809479ac89371e95b079, type: 2}
m_sharedMaterial: {fileID: 168401102475399263, guid: 97936a7b3a86809479ac89371e95b079, type: 2}
@ -616,7 +768,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
MarkType: 0
CustomComponentName:
CustomComponentName: BtnContent
CustomComment:
mComponentName: RectTransform
--- !u!1 &4469038750498708236
@ -775,7 +927,7 @@ GameObject:
- component: {fileID: 1752210379890057875}
- component: {fileID: 7352347895138269808}
m_Layer: 5
m_Name: Connt
m_Name: Content
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
@ -793,6 +945,7 @@ RectTransform:
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4002782857371670254}
- {fileID: 503948904615403453}
- {fileID: 8598386973860236803}
m_Father: {fileID: 7621766697555444520}

View File

@ -749,7 +749,7 @@ GameObject:
- component: {fileID: 2114935607}
m_Layer: 0
m_Name: 3DShowCamera
m_TagString: Untagged
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
@ -883,6 +883,7 @@ MonoBehaviour:
distanceMin: 0.2
distanceMax: 20
pitchMinMax: {x: -20, y: 80}
texture: {fileID: 8400000, guid: 187fba8368491cb428c8cbd324fa9bb4, type: 2}
--- !u!222 &102363872365703344
CanvasRenderer:
m_ObjectHideFlags: 0

View File

@ -147,8 +147,8 @@ public class ActionHelper
}
case "TextTip":
{
var strAction = (XMLTool.StringListAction)act;
return TextTipAction.Allocate(act.Value, strAction.args[0], strAction.args[1]);
var strAction = (XMLTool.DictionaryAction)act;
return TextTipAction.Allocate(act.Value, strAction.args);
}
case "UIShow":
{

View File

@ -15,17 +15,15 @@ public class TextTipAction : IAction
private static readonly SimpleObjectPool<TextTipAction> mPool =
new SimpleObjectPool<TextTipAction>(() => new TextTipAction(), null, 10);
string text = string.Empty;
string btns = string.Empty;
string audio = string.Empty;
public static TextTipAction Allocate(string text,string audio , string btns, System.Action onDelayFinish = null)
Dictionary<string, string> datas;
public static TextTipAction Allocate(string text, Dictionary<string, string> datas, System.Action onDelayFinish = null)
{
var retNode = mPool.Allocate();
retNode.ActionID = ActionKit.ID_GENERATOR++;
retNode.Deinited = false;
retNode.Reset();
retNode.text = text;
retNode.btns = btns;
retNode.audio = audio;
retNode.datas = datas;
return retNode;
}
@ -52,8 +50,9 @@ public class TextTipAction : IAction
{
UITextTipData data = new UITextTipData();
data.text = text;
data.btns = btns.Split(',').ToList();
data.audio = audio;
data.audio = datas.ContainsKey("audio") ? datas["audio"] : string.Empty;
data.title = datas.ContainsKey("title") ? datas["title"] : string.Empty;
data.btns = datas.ContainsKey("btns") ? datas["btns"].Split(',').ToList() : null;
UIKit.OpenPanelAsync<UITextTip>(uiData: data, canvasLevel: UILevel.PopUI).ToAction().StartGlobal(() => this.Finish());
}

View File

@ -7,11 +7,16 @@ using System.Drawing;
using UnityEngine;
using UnityEngine.EventSystems;
using XMLTool;
using static UnityEditor.Progress;
using static XMLTool.Body3D;
public class Body3DController : MonoSingleton<Body3DController>
{
public enum Status
{
Normal = 1 << 0,
Active = 1 << 1,
Move = 1 << 2,
}
Body3DController() { }
@ -21,6 +26,9 @@ public class Body3DController : MonoSingleton<Body3DController>
public List<GameObject> isOnList = new List<GameObject>();
public bool allowDrag = false;
public Status status = Status.Normal;
private Vector2 mouseDownPosition; // 记录鼠标按下时的位置
public override void OnSingletonInit()
{
base.OnSingletonInit();
@ -48,9 +56,9 @@ public class Body3DController : MonoSingleton<Body3DController>
}
isOnList.Add(selected.obj);
UI3DBodyInfoData data = new UI3DBodyInfoData();
UIBody3DInfoData data = new UIBody3DInfoData();
data.body = selected.obj.GetComponent<Body3DOjbItem>().body;
UIKit.OpenPanelAsync<UI3DBodyInfo>(UILevel.PopUI, data).ToAction().Start(this);
UIKit.OpenPanelAsync<UIBody3DInfo>(UILevel.PopUI, data).ToAction().Start(this);
}
}
else
@ -62,11 +70,25 @@ public class Body3DController : MonoSingleton<Body3DController>
}
if (isOnList.Count <= 0)
{
UIKit.HidePanel<UI3DBodyInfo>();
UIKit.HidePanel<UIBody3DInfo>();
}
}
}
public void SetStatus(Status status, bool isAdd)
{
if (isAdd)
{
this.status |= status;
}
else
{
this.status &= status;
}
}
public void Active(bool isActive)
{
foreach (var item in objs)
@ -152,27 +174,51 @@ public class Body3DController : MonoSingleton<Body3DController>
private void Update()
{
if (Input.GetMouseButtonDown(0) && EventSystem.current.IsPointerOverGameObject() == false)
if (Input.GetMouseButtonDown(0))
{
// 记录鼠标按下时的位置
mouseDownPosition = Input.mousePosition;
}
if (Input.GetMouseButtonUp(0))
{
// 获取鼠标抬起时的位置
Vector2 mouseUpPosition = Input.mousePosition;
// 计算鼠标按下和抬起位置之间的距离
float distance = Vector2.Distance(mouseDownPosition, mouseUpPosition);
// 判断移动距离是否小于 1 且未点击在 UI 上
if (distance < 1f && EventSystem.current.IsPointerOverGameObject() == false)
{
// 从相机发射一条射线到当前鼠标位置
if (Camera.main != null)
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit))
{
GameObject obj = hit.collider.gameObject;
//GameObject obj = hit.collider.gameObject;
// 这里可以添加处理射线击中物体的逻辑
}
else
{
if (selectIsGroup == false)
if (!selectIsGroup)
{
ClearObjectToggle();
}
}
}
}
}
}
public void ClearObjectToggle()
{

View File

@ -21,15 +21,14 @@ public class ScoreController : MonoSingleton<ScoreController>
public void Init()
{
if (Global.Instance.curModule.score != null)
{
if (Global.Instance.curModule.type == "Exam" || Global.Instance.curModule.type == "All")
{
TypeEventSystem.Global.Register<OnModuleStart>(OnStart);
TypeEventSystem.Global.Register<OnModuleQuit>(OnQuit);
}
}
}

View File

@ -1,25 +1,50 @@
using DG.Tweening;
using QFramework;
using UnityEngine;
public class ObjDrag : MonoBehaviour
{
private Vector3 offset;
private Camera mainCamera;
public bool isOn = false;
Vector3 startPosition;
// 记录上一次鼠标按下的时间
private float lastClickTime;
// 双击的时间间隔阈值
private const float doubleClickTimeThreshold = 0.3f;
void Start()
{
// 获取主相机引用
mainCamera = Camera.main;
startPosition = gameObject.transform.position;
}
private void OnMouseUp()
{
if (isOn)
{
Show3DCamera.instance.lockMove = false;
}
}
void OnMouseDown()
{
if (isOn)
{
// 计算当前时间与上一次点击时间的间隔
float currentTime = Time.time;
if (currentTime - lastClickTime < doubleClickTimeThreshold)
{
// 触发双击事件
OnDoubleClick();
}
lastClickTime = currentTime;
// 获取鼠标在相机视角平面上的世界坐标
Vector3 mouseWorldPos = GetMouseWorldPositionOnPlane();
// 计算物体位置与鼠标点击点在世界坐标中的偏移量
offset = transform.position - mouseWorldPos;
Show3DCamera.instance.lockMove = true;
}
}
@ -38,19 +63,19 @@ public class ObjDrag : MonoBehaviour
{
// 获取鼠标在屏幕上的位置
Vector3 mouseScreenPos = Input.mousePosition;
mouseScreenPos.z = mainCamera.WorldToScreenPoint(transform.position).z; // 保持物体与相机的深度一致
mouseScreenPos.z = Camera.main.WorldToScreenPoint(transform.position).z; // 保持物体与相机的深度一致
// 将鼠标的屏幕坐标转换为世界坐标
Vector3 mouseWorldPos = mainCamera.ScreenToWorldPoint(mouseScreenPos);
Vector3 mouseWorldPos = Camera.main.ScreenToWorldPoint(mouseScreenPos);
// 计算相机视角平面的法线方向(相机的正前方)
Vector3 cameraForward = mainCamera.transform.forward;
Vector3 cameraForward = Camera.main.transform.forward;
// 创建一个平面,法线方向为相机的正前方,平面通过物体的当前位置
Plane plane = new Plane(cameraForward, transform.position);
// 从相机发射一条射线,指向鼠标的世界坐标
Ray ray = mainCamera.ScreenPointToRay(mouseScreenPos);
Ray ray = Camera.main.ScreenPointToRay(mouseScreenPos);
float distance;
if (plane.Raycast(ray, out distance))
@ -62,4 +87,13 @@ public class ObjDrag : MonoBehaviour
// 如果没有相交,返回物体的当前位置
return transform.position;
}
// 双击事件处理函数
private void OnDoubleClick()
{
// 在这里可以添加你想要执行的双击逻辑
// 例如,将物体重置到起始位置
//transform.position = startPosition;
transform.DOMove(startPosition, 0.3f);
}
}

View File

@ -27,10 +27,13 @@ public class ObjectToggle : MonoBehaviour
// 检查时间间隔是否大于 0.2 秒
if (clickDuration < 0.2f)
{
if (isOn == false)
{
isOn = !isOn;
OnValueChanged?.Invoke(isOn);
}
}
isMouseDown = false;
}

View File

@ -27,6 +27,8 @@ public class Show3DCamera : MonoBehaviour
private GameObject lastHitObject = null;
public RenderTexture texture;
public bool lockMove = false;
private void Awake()
{
instance = this;
@ -34,7 +36,9 @@ public class Show3DCamera : MonoBehaviour
DontDestroyOnLoad(this);
gameObject.SetActive(false);
}
public void Set(Transform target, float rotateSpeed = 10, float moveSpeed = 0.1f, float distance = 0.1f, float pitchMin = -20, float pitchMax = 80, float distanceMin = 0.2f, float distanceMax = 20f, RectTransform inputRect = null)
public void Set(Transform target, float rotateSpeed = 10, float moveSpeed = 0.1f, float distance = 0.1f, float pitchMin = -20, float pitchMax = 80, float distanceMin = 0.2f, float distanceMax = 20f, RectTransform inputRect = null, bool isRenderTexture = true)
{
if (target == null)
{
@ -54,6 +58,15 @@ public class Show3DCamera : MonoBehaviour
this.pitchMinMax = new Vector2(pitchMin, pitchMax);
// 初始化相机位置
offset = new Vector3(0, 0, -distance);
if (isRenderTexture)
{
self.targetTexture = texture;
}
else
{
self.targetTexture = null;
}
UpdateCameraPosition();
}
@ -61,7 +74,7 @@ public class Show3DCamera : MonoBehaviour
void Update()
{
if (targetPos != null)
if (targetPos != null && lockMove == false)
{
// 按住鼠标左键时旋转相机
if (Input.GetMouseButton(0))

View File

@ -5,7 +5,7 @@ using QFramework;
namespace QFramework.Example
{
// Generate Id:89fda2e5-1471-418f-9925-5b2ab6cfed6d
// Generate Id:54cc185d-5dba-4a35-a35c-f7ccce574623
public partial class UIBody3D
{
public const string Name = "UIBody3D";
@ -19,6 +19,10 @@ namespace QFramework.Example
[SerializeField]
public UnityEngine.UI.Button DragBack;
[SerializeField]
public UnityEngine.UI.Toggle ActiveBtn;
[SerializeField]
public UnityEngine.UI.Button ActiveBack;
[SerializeField]
public UnityEngine.UI.Toggle BodyItem;
private UIBody3DData mPrivateData = null;
@ -29,6 +33,8 @@ namespace QFramework.Example
LeftContent = null;
DragBtn = null;
DragBack = null;
ActiveBtn = null;
ActiveBack = null;
BodyItem = null;
mData = null;

View File

@ -1,11 +1,7 @@
using UnityEngine;
using UnityEngine.UI;
using QFramework;
using XMLTool;
using TMPro;
using System.Drawing;
using System.Collections.Generic;
using DG.Tweening;
namespace QFramework.Example
{
@ -19,17 +15,23 @@ namespace QFramework.Example
{
DragBtn.onValueChanged.AddListener(isOn =>
{
if (isOn)
{
DragBack.gameObject.SetActive(true);
}
DragBtn.transform.Find("SubBtns").gameObject.SetActive(isOn);
Body3DController.Instance.allowDrag = isOn;
TypeEventSystem.Global.Send<OnBody3DDragChanged>();
});
DragBack.onClick.AddListener(() =>
{
DragBtn.isOn = false;
DragBack.gameObject.SetActive(false);
});
ActiveBtn.onValueChanged.AddListener(isOn =>
{
ActiveBtn.transform.Find("SubBtns").gameObject.SetActive(isOn);
});
ActiveBack.onClick.AddListener(() =>
{
});
}
@ -37,7 +39,8 @@ namespace QFramework.Example
{
mData = uiData as UIBody3DData ?? new UIBody3DData();
BodyContent.RemoveAllChildren();
Utility.FindObj(mData.body.Path).SetActive(true);
GameObject root = Utility.FindObj(mData.body.Path);
root.SetActive(true);
foreach (var bodyData in mData.body.subBody)
{
var body = bodyData.Value;
@ -52,6 +55,10 @@ namespace QFramework.Example
obj.SetActive(isOn);
});
}
FreeCameraController.instance.gameObject.SetActive(false);
Show3DCamera.instance.gameObject.SetActive(true);
Show3DCamera.instance.Set(root.transform, distance: 5, isRenderTexture: false);
}

View File

@ -6,7 +6,7 @@ using QFramework;
namespace QFramework.Example
{
// Generate Id:6a156460-e46d-43cb-8f5b-c213ad89d195
public partial class UI3DBodyInfo
public partial class UIBody3DInfo
{
public const string Name = "UI3DBodyInfo";
@ -25,7 +25,7 @@ namespace QFramework.Example
[SerializeField]
public UnityEngine.UI.Toggle TransparentOther;
private UI3DBodyInfoData mPrivateData = null;
private UIBody3DInfoData mPrivateData = null;
protected override void ClearUIComponents()
{
@ -40,7 +40,7 @@ namespace QFramework.Example
mData = null;
}
public UI3DBodyInfoData Data
public UIBody3DInfoData Data
{
get
{
@ -48,11 +48,11 @@ namespace QFramework.Example
}
}
UI3DBodyInfoData mData
UIBody3DInfoData mData
{
get
{
return mPrivateData ?? (mPrivateData = new UI3DBodyInfoData());
return mPrivateData ?? (mPrivateData = new UIBody3DInfoData());
}
set
{

View File

@ -7,11 +7,11 @@ using TMPro;
namespace QFramework.Example
{
public class UI3DBodyInfoData : UIPanelData
public class UIBody3DInfoData : UIPanelData
{
public Body3D.Body body;
}
public partial class UI3DBodyInfo : UIPanel
public partial class UIBody3DInfo : UIPanel
{
GameObject obj;
protected override void OnInit(IUIData uiData = null)
@ -91,7 +91,7 @@ namespace QFramework.Example
protected override void OnOpen(IUIData uiData = null)
{
mData = uiData as UI3DBodyInfoData ?? new UI3DBodyInfoData();
mData = uiData as UIBody3DInfoData ?? new UIBody3DInfoData();
PartName.text = mData.body.Name;
obj = Utility.FindObj(mData.body.Path);

View File

@ -81,11 +81,26 @@ namespace QFramework.Example
private void OnLoadFinished(Scene arg0, LoadSceneMode arg1)
{
SceneManager.sceneLoaded -= OnLoadFinished;
if (Global.Instance.curModule.FSM.Count > 0)
{
var machin = StateMachineController.Instance;
}
if (Global.Instance.curModule.Operations != null && Global.Instance.curModule.Operations.Count > 0)
{
var op = OperationController.Instance;
}
if (Global.Instance.curModule.Devices != null && Global.Instance.curModule.Devices.Count > 0)
{
var dev = DeviceController.Instance;
}
if (Global.Instance.curModule.body3d != null)
{
var body3d = Body3DController.Instance;
}
if (Global.Instance.curModule.score != null)
{
ScoreController.Instance.Init();
}
UIKit.OpenPanelAsync<UIRightTop>().ToAction().StartGlobal(() =>
{

View File

@ -5,11 +5,13 @@ using QFramework;
namespace QFramework.Example
{
// Generate Id:6e5ebb38-7352-4359-a698-28a6e4ca3f0f
// Generate Id:2bccd644-ac9b-4f30-8f17-4a933167afc1
public partial class UITextTip
{
public const string Name = "UITextTip";
[SerializeField]
public TMPro.TextMeshProUGUI Title;
[SerializeField]
public TMPro.TextMeshProUGUI Des;
[SerializeField]
@ -21,6 +23,7 @@ namespace QFramework.Example
protected override void ClearUIComponents()
{
Title = null;
Des = null;
BtnContent = null;
Btn = null;

View File

@ -13,6 +13,7 @@ namespace QFramework.Example
{
public string text;
public string audio;
public string title;
public List<string> btns;
}
public partial class UITextTip : UIPanel
@ -36,6 +37,8 @@ namespace QFramework.Example
mData = uiData as UITextTipData ?? new UITextTipData();
Des.text = Regex.Replace(mData.text, @"\\n", "\n");
BtnContent.RemoveAllChildren();
if (mData.btns != null)
{
foreach (var item in mData.btns)
{
GameObject btn = GameObject.Instantiate(Btn.gameObject, BtnContent);
@ -46,6 +49,7 @@ namespace QFramework.Example
Hide();
});
}
}
if (string.IsNullOrEmpty(mData.audio) == false)
{
string path = Global.audioPath + mData.audio;
@ -59,6 +63,7 @@ namespace QFramework.Example
});
loader.LoadAsync();
}
Title.text = mData.title;
}
protected override void OnShow()

View File

@ -796,24 +796,21 @@ namespace XMLTool
case "TipWindow":
case "TextTip":
{
var act = new StringListAction();
var act = new DictionaryAction();
XAttribute audio = action.Attribute("audio");
if (audio != null)
{
act.args.Add(audio.Value);
}
else
{
act.args.Add("");
act.args.Add("audio", audio.Value);
}
XAttribute btns = action.Attribute("btns");
if (btns != null)
{
act.args.Add(btns.Value);
act.args.Add("btns", btns.Value);
}
else
XAttribute title = action.Attribute("title");
if (title != null)
{
act.args.Add("");
act.args.Add("title", title.Value);
}
newAction = act;

View File

@ -101,7 +101,7 @@
-->
<Action type="CameraSwitch" nearDevice="肠钳" normalDevice="组织钳" nearPos="-3.942,3.24,-4.319" nearRot="16.42331,180,0" nearTime="1" normalPos="-3.942,3.24,-3.946" normalRot="16.42331,180,-5.305351E-14" normalTime="1"></Action>
<!--文字弹窗 按钮可以多个 点击事件使用UIClick-->
<Action type="TextTip" value="这里是文字描述" audio="q001.mp3" btns="确定,取消"/>
<Action type="TextTip" title="这里是标题" value="这里是文字描述" audio="q001.mp3" btns="确定,取消"/>
<!--锁定镜头 true为开启 false为锁定 isMove是移动镜头 isRotate是旋转镜头-->
<Action type="CameraLock" isMove="true" isRotate="true"></Action>
<!--播放视频 size为视频窗口大小 offset为窗口中心点偏移 播放完成事件和关闭事件 通常使用关闭事件即可