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);
- }
- }
- // private void OnTriggerEnter2D(Collider2D other) {
- // if(other.CompareTag("Player")){
- // for(int i = 0; i < inventory.slots.Length ; i++){
- // if(inventory.isFull[i] == false){
- // //then the item can be addded to the inventory
- // inventory.isFull[i] = true;
- // //instantiate the pickup item
- // Instantiate(itemBtn , inventory.slots[i].transform , false);
- // Destroy(gameObject);
- // break;
- // }
- // }
- // }
- // }
- }
|