点对点

This commit is contained in:
2025-07-26 20:12:34 +08:00
parent 4febfadd56
commit 68182d7764
11 changed files with 253 additions and 38 deletions

View File

@@ -192,9 +192,7 @@ namespace NBF
this.UnloadModel();
_model = model.transform;
_model.SetParent(this.modelRoot, false);
var h = CalculateModelHeight(model); //计算包围盒高度
var pos = _model.localPosition;
_model.localPosition = new Vector3(pos.x, pos.y - h * 0.5f, pos.z);
_model.AlignmentParentCenter();
}
public void UnloadModel()
@@ -250,7 +248,7 @@ namespace NBF
_renderTexture = new RenderTexture(_width, _height, 24, RenderTextureFormat.ARGB32)
{
antiAliasing = 1,
antiAliasing = 2,
filterMode = FilterMode.Bilinear,
anisoLevel = 0,
useMipMap = false

View File

@@ -17,6 +17,8 @@ namespace NBF
private SwipeGesture _swipeGesture;
private bool _focus;
private bool _canZoom;
private bool _canPan;
private Vector3 _zoomLimit;
private Rect _panLimit;
@@ -83,15 +85,19 @@ namespace NBF
{
_zoomLimit = previewableAsset.zoom;
_panLimit = previewableAsset.pan;
model.transform.localPosition = previewableAsset.position;
_canPan = previewableAsset.canPan;
_canZoom = previewableAsset.canZoom;
// model.transform.localPosition = previewableAsset.position;
model.transform.localScale = previewableAsset.scale;
model.transform.localRotation = Quaternion.Euler(previewableAsset.rotation);
}
else
{
_canPan = false;
_canZoom = false;
_zoomLimit = Vector3.zero;
_panLimit = Rect.zero;
model.transform.localPosition = previewableAsset.position;
// model.transform.localPosition = previewableAsset.position;
model.transform.localScale = Vector3.one;
model.transform.localRotation = Quaternion.Euler(Vector3.zero);
}
@@ -135,11 +141,12 @@ namespace NBF
v.y = 0;
if (Mathf.Abs(v.z) < 1) //消除手抖影响
v.z = 0;
_renderImage.StartRotate(v);
}
else
else if (_canPan)
{
v.y = -gesture.delta.y * 0.005f;
v.y = gesture.delta.y * 0.005f;
v.x = gesture.delta.x * 0.005f;
//平移
var pos = _renderImage.modelRoot.localPosition;
@@ -170,6 +177,7 @@ namespace NBF
private void OnMouseWheel(EventContext context)
{
if (!_canZoom) return;
if (!_focus) return;
float delta = context.inputEvent.mouseWheelDelta / Stage.devicePixelRatio;
SetZoom(delta * 0.2f);