增加精确命中检测和插槽输出
This commit is contained in:
@@ -88,6 +88,12 @@ namespace SpineViewer.Models
|
||||
[ObservableProperty]
|
||||
private bool _renderSelectedOnly;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _usePreciseHitTest;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _logHitSlots;
|
||||
|
||||
[ObservableProperty]
|
||||
private bool _wallpaperView;
|
||||
|
||||
|
||||
@@ -429,11 +429,19 @@ namespace SpineViewer.Models
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 命中检测, 可以比整体包围盒略精确一点
|
||||
/// 命中检测, 可选是否使用精确检测, 会有性能损失
|
||||
/// </summary>
|
||||
public bool HitTest(float x, float y)
|
||||
public bool HitTest(float x, float y, bool precise = false)
|
||||
{
|
||||
lock (_lock) return _spineObject.Skeleton.HitTest(x, y);
|
||||
lock (_lock) return _spineObject.Skeleton.HitTest(x, y, precise);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 完整的命中检测, 会检测所有插槽是否命中并返回命中的插槽名称
|
||||
/// </summary>
|
||||
public string[] HitTestFull(float x, float y, bool precise = false)
|
||||
{
|
||||
lock (_lock) return _spineObject.Skeleton.HitTestFull(x, y, precise).Select(v => v.Name).ToArray();
|
||||
}
|
||||
|
||||
public SpineObjectConfigModel ObjectConfig
|
||||
|
||||
Reference in New Issue
Block a user