Example #1
0
    public virtual void tick(float deltaTime)
    {
        if (!PhotonNetwork.IsConnected || photonView.IsMine)
        {
            float travelDuration = Mathf.Max(minTravelDuration, m_travelDuration + m_additionalDuration);
            float delta          = deltaTime / travelDuration;

            // Travel along our path, destroy ourselves once we reach the goal
            m_progress += delta;
            if (updatePositionAlongPath(m_progress))
            {
                // Damage the player
                PlayerController.localPlayer.applyDamage(m_damage);

                AnalyticsHelpers.reportMonsterReachedGoal(this);

                // We destroy ourselves after tick has concluded
                MonsterManager.destroyMonster(this, false);
            }
        }
        else
        {
            // Mimics how PhotonTransformView works
            m_progress = Mathf.MoveTowards(m_progress, m_networkProgress, m_progressDelta * (1.0f / PhotonNetwork.SerializationRate));
            updatePositionAlongPath(m_progress);
        }
    }