private void OnUpdatePinch(float fDistance) { float fZoomAverage = PrimitiveHelper.GetCalcReverseFloat(_fStartPinchZoomSize, fDistance); fZoomAverage = Mathf.Clamp(fZoomAverage, p_iCameraZoomMin, p_iCameraZoomMax); if (_bIsCameraOrtho) { _pCamera.orthographicSize = fZoomAverage; } else { // 터치 2개 중앙부터 Plane 까지 쏜 좌표값 구하기 Vector3 v3CenterRayPos = PrimitiveHelper.GetPlaneRaycastPos(_sPlaneCurrentAxis, _pCamera.ScreenPointToRay(PrimitiveHelper.GetCenterByResolution())); _pTransCamera.position = v3CenterRayPos - _pTransCamera.forward * fZoomAverage; } if (p_fZoomSmoothFactor > 0f) { _fLerpPinchDistance = Mathf.Lerp(_fLerpPinchDistance, fDistance, Time.deltaTime * p_fZoomSmoothFactor); } else { _fLerpPinchDistance = fDistance; } }
private void OnTriggerStay(Collider pCollider) { int iHashCode = pCollider.GetHashCode(); SInfoMagnetic sInfoMagnetic = _mapMagneticPool[iHashCode]; if (sInfoMagnetic.eStateMagnetic == EStateMagnetic.Attracted) { return; } Transform pTrans = sInfoMagnetic.pTransCached; float fDistanceSqrt = (pTrans.position - _pTransformCached.position).sqrMagnitude; float fDistAtrractSqrt = (p_fMagnetReactRadius * p_fMagnetReactRadius); if (sInfoMagnetic.eStateMagnetic == EStateMagnetic.Reaction || fDistanceSqrt < fDistAtrractSqrt) { if (sInfoMagnetic.eStateMagnetic == EStateMagnetic.None) { sInfoMagnetic.eStateMagnetic = EStateMagnetic.Reaction; } Vector3 v3Direction = (pTrans.position - _pTransformCached.position); float fLastDistance = sInfoMagnetic.fLastDistance; float fRealDistance = v3Direction.sqrMagnitude; float fCurrentDistance = PrimitiveHelper.GetCalcReverseFloat(sInfoMagnetic.fLastDistance, fRealDistance) * p_fMagnetReactMultiplier; fCurrentDistance = Mathf.Clamp(fCurrentDistance, 0f, 50f); pTrans.position += fCurrentDistance * (v3Direction * _iMagneticTypeDir) * Time.deltaTime; if (fRealDistance < float.Epsilon && sInfoMagnetic.eStateMagnetic != EStateMagnetic.Attracted) { sInfoMagnetic.eStateMagnetic = EStateMagnetic.Attracted; IMagneticListener IMagneticListener = sInfoMagnetic.IMagneticListener; if (IMagneticListener != null) { IMagneticListener.IOnAttracted(); } } } }