/// <summary> /// On component draw GUI. /// </summary> protected virtual void OnGUI() { if (CheckFocusEnter()) { var ray = targetCamera.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hitInfo, maxDistance, layerMask)) { var alignMark = hitInfo.transform.GetComponent <AlignMark>(); if (alignMark) { if (IsFocus == false) { defaultAlign = new AlignTarget(alignCamera.target, alignCamera.CurrentAngles, alignCamera.CurrentDistance, alignCamera.angleRange, alignCamera.distanceRange); IsFocus = true; } alignCamera.AlignVeiwToTarget(alignMark.alignTarget); } } } else if (IsFocus && CheckFocusExit()) { alignCamera.AlignVeiwToTarget(defaultAlign); IsFocus = false; } }
private void AlignCameraToMark(AlignMark alignMark) { if (isAlign == false) { isAlign = true; defaultAlign = new AlignTarget(alignCamera.target, alignCamera.CurrentAngles, alignCamera.CurrentDistance, alignCamera.angleRange, alignCamera.distanceRange); } alignCamera.AlignVeiwToTarget(alignMark.alignTarget); }