Unity Cinemachine error: утверждение не выполнено в выражении: «CompareApproximately (det, 1.0F, .005f)» - PullRequest
0 голосов
/ 18 марта 2019

Я использую актив Cinemachine , доступный в Unity Asset Store, и получаю кучу исключений.Хотя они, кажется, не влияют на мою игру как таковую, но все же я бы предпочел избавиться от них.Исключения появляются только тогда, когда я приостанавливаю приостановленную игру (используя Time.timeScale), а не иначе.

enter image description here

След стека исключений ниже:

Утверждение не удалось: утверждение не выполнено для выражения: 'CompareApproximately (det, 1.0F, .005f)'

UnityEngine.Quaternion: FromToRotation (Vector3, Vector3)

Cinemachine.Utility.PositionPredictor: PredictPosition (Single) (в объектах / Cinemachine / Base / Runtime / Core / Predictor.cs: 64)

Cinemachine.CinemachineFramingTransposer: MutateCameraState (CameraState &, Single) (в базе данных / Cinemachine //Runtime/Components/CinemachineFramingTransposer.cs:318)

Cinemachine.CinemachineVirtualCamera: CalculateNewState (Vector3, Single) (в активах / Cinemachine / Base / Runtime / Behaviors / CinemachineVirtualCamera * * 2222) 1022 *2222* Cinemachine.CinemachineVirtualCamera: UpdateCameraState (Vector3, Single) (в активах / Cinemachine / Base / Runtime / Behaviors / CinemachineVirtualCamera.cs: 128)

Cinemachine.CinemachineCore: UpdateVirtualCamera (ICinemachineCamera, Vector3, Single) (в активах / Cinemachine / Base / Runtime / Core / CinemachineCore.cs: 237)

Cinemachine.CinemachineCore: UpdateAllActiveVirtualCameras (Vector3, Single)Cinemachine / Base / Runtime / Core / CinemachineCore.cs: 165)

Cinemachine.CinemachineBrain: UpdateVirtualCameras (UpdateFilter, Single) (в активах / Cinemachine / Base / Runtime / Behaviors / CinemachineBrain.cs: 445)

Cinemachine.CinemachineBrain: LateUpdate () (в разделе Активы / Cinemachine / Base / Runtime / Behaviors / CinemachineBrain.cs: 399)

Ниже приведен скрипт, отвечающий за приостановку и приостановку игры:

public void PauseGame()
{
    if (pauseMenuCanvas)
    {
        Time.timeScale = 0f;
        pauseKeyDisabled = true;
        if (pauseMenuPanel)
        {
            pauseMenuPanel.SetActive(true);
            pauseMenuPanel.GetComponent<CanvasGroup>().interactable = true;
            if (pauseMenuPanelAnimator == null)
                pauseMenuPanelAnimator = pauseMenuPanel.GetComponent<Animator>();
            pauseMenuPanelAnimator.SetTrigger("Open");
            if (!helptextPopulated)
            {
                helptextPopulated = true;
                helptext.text += "\n\n<align=left>" + GameSession.contentInfotext;
            }
        }
    }
    gamePaused = true;
    pauseKeyDisabled = false;
}
IEnumerator UnPauseCoRoutine()
{
    pauseKeyDisabled = true;
    Time.timeScale = 1;

    if (pauseMenuPanel.activeSelf)
    {
        pauseMenuPanelAnimator.SetTrigger("Close");
        pauseMenuPanel.GetComponent<CanvasGroup>().interactable = false;
    }
    if (helpPanel.activeSelf)
    {
        if (helpPanelAnimator == null)
        {
            helpPanelAnimator = helpPanel.GetComponent<Animator>();
            helpPanel.GetComponent<CanvasGroup>().interactable = false;
        }
        helpPanelAnimator.SetTrigger("Close");
    }
    if (audioPanel.activeSelf)
    {
        if (audioPanelAnimator == null)
        {
            audioPanel.GetComponent<CanvasGroup>().interactable = false;
            audioPanelAnimator = audioPanel.GetComponent<Animator>();
        }
        audioPanelAnimator.SetTrigger("Close");
    }
    RuntimeAnimatorController ac = pauseMenuPanelAnimator.runtimeAnimatorController;
    yield return new WaitForSeconds(ac.animationClips[0].length); // use any animation from the array, as all have same length
    pauseMenuPanel.SetActive(false);
    helpPanel.SetActive(false);
    audioPanel.SetActive(false);
    gamePaused = false;
    pauseKeyDisabled = false;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...