Hello All,
quick question about prefabs. I have a script that handles the players in my game, which shoot lasers… rainbow lasers for now, but thats besides the point. I have the script dropped onto the prefab, which I have a funny feeling is responsible for the issue im experiencing. The process is supposed to be only the selected player shoots lasers, but all of them are shooting with my current setup. Can anyone lend some insight into how to correctly approach this?
Notably, each player has a unique name (ex: RedPlayer, BluePlayer).
void Start(){
LineRenderer[] lineRenderers = gameObject.GetComponentsInChildren<LineRenderer>();
line = lineRenderers [0];
gunTip = GameObject.Find(playerObject.name + "RainbowGun/GunTip");
}
void Update(){
if(TileMap.selectedGameObject != null &&
Input.GetButtonDown("Fire1") ){
StopCoroutine("FireLazer");
StartCoroutine("FireLazer");
}
}
IEnumerator FireLazer(){
float lazerRange = 13;
line.enabled = true;
gunTip.SetActive (true);
while(Input.GetButton("Fire1")){
line.GetComponent<Renderer>().material.mainTextureOffset = new Vector2(0, Time.time);
Ray ray = new Ray(gunTip.transform.position, gunTip.transform.forward);
RaycastHit hit;
line.SetPosition(0 , ray.origin);
if(Physics.Raycast(ray, out hit, lazerRange))
line.SetPosition(1, hit.point);
else
line.SetPosition(1, ray.GetPoint(lazerRange));
yield return null;
}
line.enabled = false;
this.gunTip.SetActive (false);
}
Any and all help appreciated. Thanks in advance!