1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- using System.Collections;
- using System.Collections.Generic;
- using Mirror;
- using UnityEngine;
- public class pickup : NetworkBehaviour
- {
-
- public string lootType = "default";
- public item lootData;
- float updaterInterval = 0.4f;
- void Awake(){
- updaterInterval += Random.Range(0,0.2f);
- }
- float t = 0;
- public float pickupDistance = 2;
- public float closestPlayerDist = float.MaxValue;
- [Server]
- void Update(){
- if(t < updaterInterval){
- t += Time.deltaTime;
- }else{
- ScanPlayers();
- t=0;
- }
- }
- void ScanPlayers(){
- playerNetwork[] players = FindObjectsOfType<playerNetwork>();
- if(players.Length <=0){return;}
- playerNetwork closestPlayer = players[0];
- closestPlayerDist = float.MaxValue;
- foreach(playerNetwork player in players){
- float dist = Vector3.Distance(transform.position, player.transform.position);
- if(dist < closestPlayerDist){
- closestPlayer = player;
- closestPlayerDist= dist;
- }
- }
- if(closestPlayerDist < pickupDistance){
- closestPlayer.PickupObject(this);
- NetworkServer.Destroy(gameObject);
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
|