66 lines
1.8 KiB
C#
66 lines
1.8 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using Mirror;
|
|
using UnityEngine;
|
|
|
|
public class pickup : NetworkBehaviour
|
|
{
|
|
|
|
public string lootType = "default";
|
|
|
|
float updaterInterval = 0.8f;
|
|
|
|
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;
|
|
// }
|
|
// }
|
|
// }
|
|
// }
|
|
|
|
}
|