상속: BeardedManStudios.Network.NetworkedMonoBehavior
예제 #1
0
    private void Update()
    {
        if (destroy)
        {
            Networking.Destroy(this);
            return;
        }

        if (NetworkingManager.IsOnline && !OwningNetWorker.IsServer)
        {
            return;
        }

        // To check if we are dead
        if (_dead)
        {
            return;
        }

        if (Health <= 0)         // Zombie died!
        {
            _dead = true;
            Networking.Destroy(this);             // Destroy it! :)
        }
        else
        {
            ForgePlayer_Zombie closestPlayer = null;
            float dist = 100;             // Min distance

            // Check for the closest player
            foreach (ForgePlayer_Zombie player in ForgePlayer_Zombie.ZombiePlayers)
            {
                float distance = Vector3.Distance(player.transform.position, transform.position);
                if (distance < dist)
                {
                    closestPlayer = player;
                    dist          = distance;
                }
            }

            if (closestPlayer != null && dist > 2)             // Move towards the closest player
            {
                transform.position -= (transform.position - closestPlayer.transform.position) * Time.deltaTime;
            }
        }
    }
예제 #2
0
    public void OnTriggerEnter(Collider other)
    {
        if (NetworkingManager.IsOnline && !NetworkingManager.Socket.IsServer)
        {
            return;
        }

        if (other.gameObject.name.Contains("CubePlayerGuy"))
        {
            ForgePlayer_Zombie player = other.GetComponent <ForgePlayer_Zombie>();
            //A player hit this powerup!
            player.RPC("EnableRapidFire", NetworkReceivers.All);
            Debug.Log("Powerup Triggered for " + other.gameObject.name);

            Networking.Destroy(this);
        }
    }