Hi!
I’m trying to create a maze with walls appearing when you are within a range of them. It works perfectly with one person but I’m creating a multiplayer game. It appears that only some walls works with this when there is more than one player.
Here is my code if you wanna have a look at it. It will probably explain more then I can do:
using UnityEngine;
using System.Collections;
public class AppearWhenNear : MonoBehaviour {
public GameObject[] players;
public float distance = 5.0f;
public float speed = 1.0f;
public Vector3 targetPos;
Vector3 startPos;
float nearestDistanceSqr = Mathf.Infinity;
GameObject closestGO;
void Start () {
targetPos = new Vector3(transform.position.x, 2.5f, transform.position.z);
startPos = transform.position;
}
void Update () {
players = GameObject.FindGameObjectsWithTag ("Player");
if(closestGO != null) {
if(Vector3.Distance(transform.position, closestGO.transform.position) < distance) {
Vector3 pos = Vector3.Lerp(transform.position, targetPos, speed * Time.deltaTime);
transform.position = pos;
}
else {
Vector3 pos = Vector3.Lerp(transform.position, startPos, speed * Time.deltaTime);
transform.position = pos;
}
}
foreach(GameObject player in players) {
float dist = (player.transform.position - transform.position).sqrMagnitude;
if(dist < nearestDistanceSqr) {
closestGO = player;
Debug.Log(closestGO.name);
nearestDistanceSqr = dist;
}
}
}
}
Thank you
//Proximal Pyro