Skip to content

Commit 0f75af8

Browse files
fix: sprite renderer pivot error in rect tool (#328)
1 parent c7e8a04 commit 0f75af8

File tree

1 file changed

+9
-8
lines changed

1 file changed

+9
-8
lines changed

packages/gizmo/src/Rect.ts

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export class RectControl extends GizmoComponent {
4747
private static _vec32: Vector3 = new Vector3();
4848
private static _vec33: Vector3 = new Vector3();
4949

50+
private _startPriority = 99999999;
5051
// 当前操作的辅助线
5152
private _axisName: string = "";
5253
// 当前操作的平面
@@ -928,7 +929,7 @@ export class RectControl extends GizmoComponent {
928929
renderer.setMaterial(Utils.visibleMaterialRect);
929930
// Invisible Renderer (for pick)
930931
const pickRenderer = entity.addComponent(MeshRenderer);
931-
pickRenderer.priority = 3;
932+
pickRenderer.priority = 3 + this._startPriority;
932933
const pickMesh = PrimitiveMesh.createCylinder(engine, 0.2, 0.2, 1);
933934
pickRenderer.mesh = pickMesh;
934935
pickRenderer.setMaterial(Utils.invisibleMaterialRect);
@@ -948,7 +949,7 @@ export class RectControl extends GizmoComponent {
948949
icon.registerIconToViewportCamera(this._camera);
949950
// Invisible Renderer (for pick)
950951
const pickRenderer = entity.addComponent(MeshRenderer);
951-
pickRenderer.priority = 4;
952+
pickRenderer.priority = 4 + this._startPriority;
952953
const pickMesh = PrimitiveMesh.createSphere(engine, this._pickRadius);
953954
pickRenderer.mesh = pickMesh;
954955
pickRenderer.setMaterial(Utils.invisibleMaterialRect);
@@ -958,7 +959,7 @@ export class RectControl extends GizmoComponent {
958959
rotateEntity.transform.position = rotatePointerLocalPosition;
959960
// Invisible Renderer (for pick)
960961
const rotatePickRenderer = rotateEntity.addComponent(MeshRenderer);
961-
rotatePickRenderer.priority = 4;
962+
rotatePickRenderer.priority = 4 + this._startPriority;
962963
const rotatePickMesh = PrimitiveMesh.createSphere(engine, this._pickRadius);
963964
rotatePickRenderer.mesh = rotatePickMesh;
964965
rotatePickRenderer.setMaterial(Utils.invisibleMaterialRect);
@@ -971,7 +972,7 @@ export class RectControl extends GizmoComponent {
971972
// Invisible Renderer (for pick)
972973
const pickRenderer = entity.addComponent(MeshRenderer);
973974
const pickMesh = PrimitiveMesh.createPlane(this.engine, 1, 1);
974-
pickRenderer.priority = 2;
975+
pickRenderer.priority = 2 + this._startPriority;
975976
pickRenderer.mesh = pickMesh;
976977
pickRenderer.setMaterial(Utils.invisibleMaterialRect);
977978
return entity;
@@ -988,7 +989,7 @@ export class RectControl extends GizmoComponent {
988989
icon.registerIconToViewportCamera(this._camera);
989990
// Invisible Renderer (for pick)
990991
const pickRenderer = entity.addComponent(MeshRenderer);
991-
pickRenderer.priority = 1;
992+
pickRenderer.priority = 1 + this._startPriority;
992993
const pickMesh = PrimitiveMesh.createSphere(engine, 0.5);
993994
pickRenderer.mesh = pickMesh;
994995
pickRenderer.setMaterial(Utils.invisibleMaterialRect);
@@ -998,7 +999,7 @@ export class RectControl extends GizmoComponent {
998999
private _createCenterPick(center: Entity): MeshRenderer {
9991000
// Invisible Renderer (for pick)
10001001
const pickRenderer = center.addComponent(MeshRenderer);
1001-
pickRenderer.priority = 10;
1002+
pickRenderer.priority = 10 + this._startPriority;
10021003
const pickMesh = PrimitiveMesh.createSphere(center.engine, 0.5);
10031004
pickRenderer.mesh = pickMesh;
10041005
pickRenderer.setMaterial(Utils.invisibleMaterialRect);
@@ -1642,8 +1643,8 @@ export class RectControl extends GizmoComponent {
16421643
const { min: tempMin, max: tempMax } = out;
16431644
const { width, height } = renderer;
16441645
const sprite = renderer.sprite;
1645-
let pivotX = sprite?.pivot.x || 0.5;
1646-
let pivotY = sprite?.pivot.y || 0.5;
1646+
let pivotX = sprite?.pivot.x ?? 0.5;
1647+
let pivotY = sprite?.pivot.y ?? 0.5;
16471648
tempMin.set(-width * pivotX, -height * pivotY, 0);
16481649
tempMax.set(width * (1 - pivotX), height * (1 - pivotY), 0);
16491650
return true;

0 commit comments

Comments
 (0)