完成预览相关内容

This commit is contained in:
bob
2025-06-26 19:20:42 +08:00
parent 29d7836b66
commit 4febfadd56
12 changed files with 415 additions and 200 deletions

View File

@@ -17,6 +17,8 @@ namespace NBF
private SwipeGesture _swipeGesture;
private bool _focus;
private Vector3 _zoomLimit;
private Rect _panLimit;
private void OnInited()
{
@@ -39,17 +41,21 @@ namespace NBF
/// </summary>
/// <param name="configId"></param>
public void LoadAsset(int configId)
{
//Assets/Resources/gfx/hooks/berserk_hooks/clas_20421_20446/clas_20423.prefab
//Assets/Resources/gfx/rods/syberia/bolo_10021/bolo_10021_LB400.prefab
//"Role/test"
var prefab = Resources.Load("gfx/hooks/berserk_hooks/clas_20421_20446/clas_20423");
SetModel((GameObject)Object.Instantiate(prefab));
}
public void SetModel(GameObject model)
{
if (_renderImage == null)
{
_renderImage = new ModelRenderImage(ModelHolder.asGraph);
}
//Assets/Resources/gfx/hooks/berserk_hooks/clas_20421_20446/clas_20423.prefab
//Assets/Resources/gfx/rods/syberia/bolo_10021/bolo_10021_LB400.prefab
//"Role/test"
var prefab = Resources.Load("gfx/hooks/berserk_hooks/clas_20421_20446/clas_20423");
var model = ((GameObject)Object.Instantiate(prefab));
var ccdIk = model.GetComponent<CCDIK>();
if (ccdIk != null)
{
@@ -69,19 +75,25 @@ namespace NBF
}
_renderImage.modelRoot.localScale = new Vector3(200, 200, 200);
_renderImage.SetModel(model);
_renderImage.modelRoot.localScale = Vector3.one;
var previewableAsset = model.GetComponent<PreviewableAsset>();
if (previewableAsset != null)
{
_renderImage.modelRoot.localPosition = new Vector3(0, 0, previewableAsset.zoom.zoom);
_renderImage.modelRoot.localRotation = Quaternion.Euler(previewableAsset.rotation);
_zoomLimit = previewableAsset.zoom;
_panLimit = previewableAsset.pan;
model.transform.localPosition = previewableAsset.position;
model.transform.localScale = previewableAsset.scale;
model.transform.localRotation = Quaternion.Euler(previewableAsset.rotation);
}
else
{
_renderImage.modelRoot.localPosition = new Vector3(0, 0, 3);
_renderImage.modelRoot.localRotation = Quaternion.Euler(Vector3.zero);
_zoomLimit = Vector3.zero;
_panLimit = Rect.zero;
model.transform.localPosition = previewableAsset.position;
model.transform.localScale = Vector3.one;
model.transform.localRotation = Quaternion.Euler(Vector3.zero);
}
}
@@ -166,7 +178,17 @@ namespace NBF
private void SetZoom(float delta)
{
var pos = _renderImage.modelRoot.localPosition;
_renderImage.modelRoot.localPosition = new Vector3(pos.x, pos.y, pos.z + delta);
var targetZ = pos.z + delta;
if (targetZ < _zoomLimit.x)
{
targetZ = _zoomLimit.x;
}
else if (targetZ > _zoomLimit.y)
{
targetZ = _zoomLimit.y;
}
_renderImage.modelRoot.localPosition = new Vector3(pos.x, pos.y, targetZ);
}
#endregion

View File

@@ -9,6 +9,15 @@ namespace NBF
{
public override string UIPackName => "Tools";
public override string UIResName => "PreviewPanel";
public GameObject Instance { get; private set; }
public GameObject LoadModel(GameObject prefab)
{
Instance = Object.Instantiate(prefab);
Debug.LogError($"预制体:{prefab.name} 实例={Instance}");
Model.SetModel(Instance);
return Instance;
}
}
}