Example #1
0
    void OnGUI()
    {
        EditorGUILayout.BeginVertical("ShurikenEffectBg");
        typeOfPlayer   = (AFPC_PlayerMovement.PlayerType)EditorGUILayout.EnumPopup("Type Of Player: ", typeOfPlayer, "ExposablePopupMenu");
        playerPlatform = (PlayerPlatform)EditorGUILayout.EnumPopup("Platform: ", playerPlatform, "ExposablePopupMenu");
        spawnPos       = EditorGUILayout.Vector3Field("Player Spawn Position: ", spawnPos);
        if (typeOfPlayer == AFPC_PlayerMovement.PlayerType.rigidBodyPlayer)
        {
            footstepDetection = (AFPC_PlayerMovement.FootstepsDetectionMode)EditorGUILayout.EnumPopup("Footstep Detection Mode: ", footstepDetection, "ExposablePopupMenu");
        }
        GUILayout.Box(GUIContent.none, "horizontalSlider");
        if (GUILayout.Button("Build Player!"))
        {
            BuildPlayer();
        }
        if (player != null)
        {
            groundDistance = EditorGUILayout.FloatField("Ground Distance: ", groundDistance);
            if (GUILayout.Button("Place On Ground"))
            {
                if (groundDistance > 0)
                {
                    PutOnGround(groundDistance);
                }
                else
                {
                    Debug.LogError("Set Ground Distance To Greater Than 0.");
                }
            }
        }

        EditorGUILayout.EndVertical();
    }
    // Update is called once per frame
    void Update()
    {
        if (prevPLayerType != afpcPlayer.playerType)
        {
            ChangePlayerType();
        }

        prevPLayerType = afpcPlayer.playerType;

        if (afpcPlayer.playerType == AFPC_PlayerMovement.PlayerType.rigidBodyPlayer)
        {
            health = Mathf.Clamp(health, minHealth, maxHealth);              // Clamp health to make sure it is always in the specified range

            if (healthBar != null && healthBar.type == Image.Type.Filled && useBarToShowHealth)
            {
                float targetFillAmount = healthBar.GetComponent <AFPC_UIBar> ().ConvertValuesToFillAmountValue(health, minHealth, maxHealth, 0f, 1f);
                healthBar.fillAmount = Mathf.SmoothDamp(healthBar.fillAmount, targetFillAmount, ref fillAmountV, timeToSmoothFillAmount);
            }

            if (healthText != null && useTextToShowHealth)
            {
                healthText.text = health.ToString();
            }

            if (health <= minHealth && spawnManager != null && !dieCallBool)
            {
                dieCallBool = true;
                spawnManager.Die();
            }

            if (hasFallDamage)
            {
                ApplyFallDamage();
            }

            UpdatePainFade();
        }
        else if (afpcPlayer.playerType == AFPC_PlayerMovement.PlayerType.spectator)
        {
            if (healthMaster != null)
            {
                healthMaster.gameObject.SetActive(false);
            }
        }
    }
Example #3
0
    // Update is called once per frame
    void Update()
    {
        if (prevPlayerType != afpcPlayer.playerType)
        {
            ChangePlayerType();
        }

        prevPlayerType = afpcPlayer.playerType;

        if (afpcPlayer.playerType == AFPC_PlayerMovement.PlayerType.rigidBodyPlayer)
        {
            if (afpcPlayer.IsSwimming)
            {
                useOxygenManager = true;
            }
            else
            {
                useOxygenManager = false;                 // Only enable oxygen system when player is swimming
            }
            currentOxygen = Mathf.Clamp(currentOxygen, minOxygen, maxOxygen);

            if (!hideOxygenBar && useOxygenManager)
            {
                oxygenMaster.rectTransform.anchoredPosition = startingPos;
            }

            if (oxygenMaster != null)
            {
                if (useOxygenManager && afpcPlayer.IsSwimming && hideOxygenBar)
                {
                    oxygenMaster.rectTransform.anchoredPosition = Vector3.SmoothDamp(oxygenMaster.rectTransform.anchoredPosition, startingPos, ref oxygenMasterPositionV, timeToHideOxygenBar);
                }
                else if (!useOxygenManager && !afpcPlayer.IsSwimming && hideOxygenBar)
                {
                    oxygenMaster.rectTransform.anchoredPosition = Vector3.SmoothDamp(oxygenMaster.rectTransform.anchoredPosition, hidePosition, ref oxygenMasterPositionV, timeToHideOxygenBar);
                }
            }

            if (oxygenBar != null && useBarToShowOxygen)
            {
                float targetFillAmount = oxygenBar.GetComponent <AFPC_UIBar> ().ConvertValuesToFillAmountValue(currentOxygen, minOxygen, maxOxygen, 0f, 1f);
                oxygenBar.fillAmount = Mathf.SmoothDamp(oxygenBar.fillAmount, targetFillAmount, ref fillAmountV, timeToSmoothFillAmount);
            }

            if (oxygenText != null && useTextToShowOxygen)
            {
                oxygenText.text = currentOxygen.ToString();
            }

            if (!afpcPlayer.infiniteRunning && currentOxygen == minOxygen && useoxygenRestoreSound && oxygenRestoreSound != null && useOxygenManager && !i)
            {
                _audioSrc.PlayOneShot(oxygenRestoreSound, oxygenRestoreVolume);
                i = true;
            }
        }
        else if (afpcPlayer.playerType == AFPC_PlayerMovement.PlayerType.spectator)
        {
            if (oxygenMaster != null && oxygenMaster.IsActive())
            {
                oxygenMaster.gameObject.SetActive(false);
            }
        }
    }
    // Update is called once per frame
    void Update()
    {
        if (prevPlayerType != afpcPlayer.playerType)
        {
            ChangePlayerType();
        }

        prevPlayerType = afpcPlayer.playerType;

        if (afpcPlayer.playerType == AFPC_PlayerMovement.PlayerType.rigidBodyPlayer)
        {
            if (afpcPlayer.infiniteRunning)
            {
                useStaminaManager = false;
            }
            else
            {
                useStaminaManager = true;                 // Only enable stamina system when infinite running is disabled
            }
            currentStamina = Mathf.Clamp(currentStamina, minStamina, maxStamina);

            if (!hideStaminaBar && useStaminaManager)
            {
                staminaMaster.rectTransform.anchoredPosition = startingPos;
            }

            if (staminaMaster != null)
            {
                if (useStaminaManager && afpcPlayer.IsRunning && hideStaminaBar)
                {
                    staminaMaster.rectTransform.anchoredPosition = Vector3.SmoothDamp(staminaMaster.rectTransform.anchoredPosition, startingPos, ref staminaMasterPositionV, timeToHideStaminaBar);
                }
                else if (useStaminaManager && !afpcPlayer.IsRunning && hideStaminaBar)
                {
                    staminaMaster.rectTransform.anchoredPosition = Vector3.SmoothDamp(staminaMaster.rectTransform.anchoredPosition, hidePosition, ref staminaMasterPositionV, timeToHideStaminaBar);
                }
            }

            if (staminaBar != null && useBarToShowStamina)
            {
                float targetFillAmount = staminaBar.GetComponent <AFPC_UIBar> ().ConvertValuesToFillAmountValue(currentStamina, minStamina, maxStamina, 0f, 1f);
                staminaBar.fillAmount = Mathf.SmoothDamp(staminaBar.fillAmount, targetFillAmount, ref fillAmountV, timeToSmoothFillAmount);
            }

            if (staminaText != null && useTextToShowStamina)
            {
                staminaText.text = currentStamina.ToString();
            }

            if (!afpcPlayer.infiniteRunning && currentStamina <= minStamina && useGaspSound && gaspSound != null && useStaminaManager && !i)
            {
                _audioSrc.PlayOneShot(gaspSound, gaspVolume);
                i = true;
            }
        }
        else if (afpcPlayer.playerType == AFPC_PlayerMovement.PlayerType.spectator)
        {
            if (staminaMaster != null && staminaMaster.IsActive())
            {
                staminaMaster.gameObject.SetActive(false);
            }
        }
    }