public void endDrag() { if (dragMode == DragMode.none) return; dragedRigidbody = null; nowDrag.connectedBody = null; dragMode = DragMode.none; editableObject.draged = false; editableObject = null; }
public void OnDragEnd() { if (enabled) { if (jointDrag.connectedBody) { jointDrag.connectedBody.detectCollisions = true; jointDrag.connectedBody = null; } editableObject.draged = false; editableObject = null; enabled = false; } }
public void OnDragStart(GameObject pObject) { var lEditableObject = zzEditableObjectContainer.findRoot(pObject); if (!lEditableObject) return; enabled = true; editableObject = lEditableObject; lEditableObject.draged = true; if (freezeDragedRotation) lEditableObject.rigidbody.constraints = RigidbodyConstraints.FreezeRotation; jointDrag.transform.position = getXYWantPos(); jointDrag.connectedBody = lEditableObject.rigidbody; jointDrag.connectedBody.detectCollisions = detectCollisions; }
void OnDragObject(GameObject pObject,DragMode pMode) { if (dragMode != DragMode.none) return; var lNowDrag = pMode == DragMode.XY ? jointXyDrag : jointXzDrag; if (!lNowDrag) return; var lEditableObject = zzEditableObjectContainer.findRoot(pObject); if (!lEditableObject) return; editableObject = lEditableObject; lEditableObject.draged = true; dragMode = pMode; nowDrag = lNowDrag; dragedRigidbody = lEditableObject.rigidbody; var lDragedTransform = lEditableObject.transform; var lDragWorldPos = zzRigidbodyDrag.getZFlatCrossPoint(lDragedTransform.position, zzObjectPicker.getMainCameraRay()); //getFlatCrossPoint(lDragedTransform.position, getCameraRay(), dragMode); originalPosition = lDragWorldPos; nowDrag.transform.position = lDragWorldPos; nowDrag.connectedBody = dragedRigidbody; }
void OnDragObject(GameObject pObject, ScaleMode pMode) { if (scaleMode != ScaleMode.none) return; var lEditableObject = zzEditableObjectContainer.findRoot(pObject); if (!lEditableObject) return; zzUndo.registerUndo(lEditableObject.transform); editableObject = lEditableObject; lEditableObject.draged = true; scaleMode = pMode; //放缩的尺寸基于原始的放缩值 var lObjectScale = lEditableObject.transform.localScale; scaleValue = Mathf.Sqrt(lObjectScale.x * lObjectScale.x + lObjectScale.y * lObjectScale.y) * 0.01f; lastMousePosition = getMousePosition(); this.enabled = true; if (editableObject.rigidbody) editableObject.rigidbody.detectCollisions = false; }
void OnDragObject(GameObject pObject, DragMode pMode) { if (dragMode != DragMode.none) return; var lEditableObject = zzEditableObjectContainer.findRoot(pObject); if (!lEditableObject) return; editableObject = lEditableObject; lEditableObject.draged = true; dragMode = pMode; //放缩的尺寸基于原始的放缩值 var lObjectScale = lEditableObject.transform.localScale; switch (dragMode) { case DragMode.XY: scaleValue = Mathf.Sqrt(lObjectScale.x * lObjectScale.x + lObjectScale.y * lObjectScale.y) * 0.01f; break; case DragMode.XZ: scaleValue = Mathf.Sqrt(lObjectScale.x * lObjectScale.x + lObjectScale.z * lObjectScale.z) * 0.01f; break; } lastMousePosition = getMousePosition(); }