Merge branch 'master' into 3DBody

This commit is contained in:
shenjianxing 2025-03-11 13:59:53 +08:00
commit ad5bcb59de
7 changed files with 147 additions and 5 deletions

View File

@ -73,6 +73,33 @@ public class Show3DCamera : MonoBehaviour
public void ResetCamera(Transform target, RectTransform inputRect = null, bool isRenderTexture = true)
{
if (target == null)
{
Debug.LogError("Target is not assigned!");
return;
}
yaw = 0;
pitch = 0;
// 初始化相机位置
this.inputRect = inputRect;
this.targetPos = target.transform.position;
// 初始化相机位置
offset = new Vector3(0, 0, -distance);
if (isRenderTexture)
{
self.targetTexture = texture;
}
else
{
self.targetTexture = null;
}
UpdateCameraPosition(-1);
}
void Update() void Update()
{ {
if (targetPos != null && lockMove == false && EventSystem.current.IsPointerOverGameObject() == false) if (targetPos != null && lockMove == false && EventSystem.current.IsPointerOverGameObject() == false)

View File

@ -57,6 +57,7 @@ namespace QFramework.Example
Dictionary<string, BodyListItem> bodyListIndex = new Dictionary<string, BodyListItem>(); Dictionary<string, BodyListItem> bodyListIndex = new Dictionary<string, BodyListItem>();
protected override void OnInit(IUIData uiData = null) protected override void OnInit(IUIData uiData = null)
{ {
TypeEventSystem.Global.Register<OnModuleQuit>(OnModuleQuithandler).UnRegisterWhenGameObjectDestroyed(this);
DragBtn.onValueChanged.AddListener(isOn => DragBtn.onValueChanged.AddListener(isOn =>
{ {
DragBtn.transform.Find("SubBtns").gameObject.SetActive(isOn); DragBtn.transform.Find("SubBtns").gameObject.SetActive(isOn);
@ -149,6 +150,10 @@ namespace QFramework.Example
} }
private void OnModuleQuithandler(OnModuleQuit quit)
{
Hide();
}
private void OnUIDrawClose() private void OnUIDrawClose()
{ {
@ -244,7 +249,7 @@ namespace QFramework.Example
public void ResetCamera(float moveTime) public void ResetCamera(float moveTime)
{ {
Show3DCamera.instance.Set(root.transform, distance: 5, isRenderTexture: false, moveTime: moveTime, pitchMin: -80); Show3DCamera.instance.ResetCamera(root.transform);
} }
protected override void OnShow() protected override void OnShow()

View File

@ -18,6 +18,7 @@ namespace QFramework.Example
float bgH; float bgH;
protected override void OnInit(IUIData uiData = null) protected override void OnInit(IUIData uiData = null)
{ {
TypeEventSystem.Global.Register<OnModuleQuit>(OnModuleQuithandler).UnRegisterWhenGameObjectDestroyed(this);
bgH = Content.sizeDelta.y; bgH = Content.sizeDelta.y;
Group.onValueChanged.AddListener(isOn => Group.onValueChanged.AddListener(isOn =>
{ {
@ -122,6 +123,11 @@ namespace QFramework.Example
} }
private void OnModuleQuithandler(OnModuleQuit quit)
{
Hide();
}
public void RefreshTipPath() public void RefreshTipPath()
{ {
ListContent.RemoveAllChildren(); ListContent.RemoveAllChildren();

View File

@ -4,6 +4,7 @@ using XMLTool;
using System.Collections.Generic; using System.Collections.Generic;
using TMPro; using TMPro;
using DG.Tweening; using DG.Tweening;
using System;
namespace QFramework.Example namespace QFramework.Example
{ {
@ -204,6 +205,7 @@ namespace QFramework.Example
DOTweenAnimation contentAnim; DOTweenAnimation contentAnim;
protected override void OnInit(IUIData uiData = null) protected override void OnInit(IUIData uiData = null)
{ {
TypeEventSystem.Global.Register<OnModuleQuit>(OnModuleQuithandler).UnRegisterWhenGameObjectDestroyed(this);
contentAnim = RootContent.GetComponent<DOTweenAnimation>(); contentAnim = RootContent.GetComponent<DOTweenAnimation>();
// please add init code here // please add init code here
Close.onClick.AddListener(() => Close.onClick.AddListener(() =>
@ -233,7 +235,10 @@ namespace QFramework.Example
}); });
} }
private void OnModuleQuithandler(OnModuleQuit quit)
{
Hide();
}
protected override void OnOpen(IUIData uiData = null) protected override void OnOpen(IUIData uiData = null)
{ {

View File

@ -15,6 +15,7 @@ namespace QFramework.Example
private bool isObjectHit; // 标记是否有物体被击中 private bool isObjectHit; // 标记是否有物体被击中
protected override void OnInit(IUIData uiData = null) protected override void OnInit(IUIData uiData = null)
{ {
TypeEventSystem.Global.Register<OnModuleQuit>(OnModuleQuithandler).UnRegisterWhenGameObjectDestroyed(this);
mData = uiData as UIBody3DMouseData ?? new UIBody3DMouseData(); mData = uiData as UIBody3DMouseData ?? new UIBody3DMouseData();
dragItem = Content.GetComponent<UIDragItem>(); dragItem = Content.GetComponent<UIDragItem>();
@ -31,6 +32,11 @@ namespace QFramework.Example
}); });
} }
private void OnModuleQuithandler(OnModuleQuit quit)
{
Hide();
}
private void OnEndDrag() private void OnEndDrag()
{ {
Show3DCamera.instance.lockMove = false; Show3DCamera.instance.lockMove = false;

View File

@ -405,7 +405,8 @@ namespace XMLTool
Name = bodyElement.Attribute("name")?.Value, Name = bodyElement.Attribute("name")?.Value,
Path = bodyElement.Attribute("path")?.Value, Path = bodyElement.Attribute("path")?.Value,
Tip = bodyElement.Attribute("tip")?.Value, Tip = bodyElement.Attribute("tip")?.Value,
Audio = bodyElement.Attribute("audio")?.Value Audio = bodyElement.Attribute("audio")?.Value,
FocusDistance = bodyElement.Attribute("FocusDistance")?.Value
}; };
var isShow = bodyElement.Attribute("isShow"); var isShow = bodyElement.Attribute("isShow");

View File

@ -380,4 +380,96 @@
</Module> </Module>
<Body3D>
<Body name="头颈" icon="" path="Ren_NEW/SM_GuGe/skull" FocusDistance="1" audio="" tip="">
<Body name="骨骼系统" path="Ren_NEW/SM_GuGe" >
<Body name="左肋骨" path="Ren_NEW/SM_GuGe/upper_limb_bone">
<Body name="左肋" path="Ren_NEW/SM_GuGe/upper_limb_bone/Left_upper_limb_bones">
<Body name="左一" path="Ren_NEW/SM_GuGe/upper_limb_bone/Left_upper_limb_bones/Left_free_upper_limb_bones" tip="左一肋骨描述">
<ObjectToggle>
<Color isOn="0,255,255" isOff="255,255,255"></Color>
</ObjectToggle>
</Body>
<Body name="左二" path="Ren/Tou/GuGe/LeiGu/ZuoLei/2" tip="左二肋骨描述">
<ObjectToggle>
<Color isOn="0,255,255" isOff="255,255,255"></Color>
</ObjectToggle>
</Body>
</Body>
<Body name="右肋" path="Ren/Tou/GuGe/LeiGu/YouLei">
<Body name="右一" path="Ren/Tou/GuGe/LeiGu/YouLei/1" tip="7右一肋骨描述">
<ObjectToggle>
<Color isOn="0,255,255" isOff="255,255,255"></Color>
</ObjectToggle>
</Body>
<Body name="右二" path="Ren/Tou/GuGe/LeiGu/YouLei/2" tip="右二肋骨描述">
<ObjectToggle>
<Color isOn="0,255,255" isOff="255,255,255"></Color>
</ObjectToggle>
</Body>
</Body>
</Body>
</Body>
<Body name="皮肤系统" path="Ren/Tou/PiFu" isShow="false">
<Body name="肋骨" path="Ren/Tou/PiFu/LeiGu">
<Body name="左肋" path="Ren/Tou/PiFu/LeiGu/ZuoLei">
<Body name="左一" path="Ren/Tou/PiFu/LeiGu/ZuoLei/1"></Body>
<Body name="左二" path="Ren/Tou/PiFu/LeiGu/ZuoLei/2"></Body>
</Body>
<Body name="右肋" path="Ren/Tou/PiFu/LeiGu/YouLei">
<Body name="右一" path="Ren/Tou/PiFu/LeiGu/YouLei/1"></Body>
<Body name="右二" path="Ren/Tou/PiFu/LeiGu/YouLei/2"></Body>
</Body>
</Body>
</Body>
<Body name="肌肉" isBodyList="true" path="Ren/Tou/JiRou">
<Body name="111" path="Ren/Tou/JiRou/1">
<ObjectToggle>
<Color></Color>
</ObjectToggle>
</Body>
<Body name="动脉" path="Ren_NEW/SM_DongMai">
<ObjectToggle>
<Color></Color>
</ObjectToggle>
</Body>
<Body name="静脉" path="Ren/Tou/JiRou/3">
<ObjectToggle>
<Color></Color>
</ObjectToggle>
</Body>
</Body>
<Body name="神经" isBodyList="true">
<Body name="aaa" path="Ren/Tou/ShenJing/1">
<ObjectToggle>
<Color></Color>
</ObjectToggle>
</Body>
<Body name="bbb" path="Ren/Tou/ShenJing/2">
<ObjectToggle>
<Color></Color>
</ObjectToggle>
</Body>
<Body name="ccc" path="Ren/Tou/ShenJing/3">
<ObjectToggle>
<Color></Color>
</ObjectToggle>
</Body>
</Body>
</Body>
</Body3D>
</示例> </示例>