Hey guys , im trying to figure out how to disable a specific child of a parent game object ontriggerEnter , however I have 10 parent objects that are basically the same so calling by tag etc disables the child on all objects
Heres my script so far
using UnityEngine;
using System.Collections;
public class RingScript : MonoBehaviour {
public bool inRoofTrigger;
public bool inHookTrigger;
public bool inSecondForceTrigger;
public bool inforcecollider;
public GameObject roofTrigger;
public GameObject lowHookTrigger;
public GameObject secondForceTrigger;
public GameObject forceCollider;
public GameObject guiScript;
public float speed = 1f;
void Update()
{
}
void Awake ()
{
roofTrigger = GameObject.FindWithTag ("RoofCollider");
lowHookTrigger = GameObject.FindWithTag ("LowHookTrigger");
secondForceTrigger = GameObject.FindWithTag ("SecondForceCollider");
forceCollider = GameObject.FindWithTag ("ForceCollider");
}
void OnTriggerEnter (Collider other)
{
if (other.tag == "RoofCollider")
{
inRoofTrigger = true;
}
if (other.tag == "LowHookTrigger")
{
inHookTrigger = true;
}
if (other.tag == "SecondForceCollider")
{
inSecondForceTrigger = true;
}
if (other.tag == "ForceCollider")
{
inforcecollider = true;
}
}
void OnTriggerExit (Collider other)
{
if (other.tag == "RoofCollider")
{
inRoofTrigger = false;
}
if (other.tag == "LowHookTrigger")
{
inHookTrigger = false;
}
if (other.tag == "SecondForceCollider")
{
inSecondForceTrigger = false;
}
if (other.tag == "ForceCollider")
{
inforcecollider = false;
}
}
void FixedUpdate ()
{
if (inRoofTrigger == false inHookTrigger == false inSecondForceTrigger == false inforcecollider == false )
{
rigidbody.constraints = RigidbodyConstraints.None;
rigidbody.collisionDetectionMode = CollisionDetectionMode.Discrete;
}
if (inRoofTrigger == true inHookTrigger == false )
{
rigidbody.collisionDetectionMode = CollisionDetectionMode.ContinuousDynamic;
}
if (inRoofTrigger == false inHookTrigger == true)
{
rigidbody.constraints = RigidbodyConstraints.FreezePositionX | RigidbodyConstraints.FreezePositionZ;
rigidbody.AddForce (1, -2,0);
}
if (inSecondForceTrigger == true inRoofTrigger == false inHookTrigger == false)
{
rigidbody.AddForce (7, 0,0);
}
if ( GameObject.FindWithTag("Level01GUI").GetComponent<GUIScript>().buttonPress inRoofTrigger == false inHookTrigger == false inSecondForceTrigger == false inforcecollider == true )
{
rigidbody.AddForce (250, 1000,0);
}
}
}
Here`s is the work around i have made but its far to long and I need to implement this into the first script to make things work far more smoother
using UnityEngine;
using System.Collections;
public class RingHook : MonoBehaviour {
public bool ringOneTrigger ;
public bool ringTwoTrigger ;
public bool ringThreeTrigger ;
public bool ringFourTrigger ;
public bool ringFiveTrigger ;
public bool ringSixTrigger ;
public bool ringSevenTrigger ;
public bool ringEightTrigger ;
public bool ringNineTrigger ;
public bool ringTenTrigger ;
public GameObject ring1;
public GameObject ring1BoxCollider;
public GameObject ring1SphereCollider;
public GameObject ring2;
public GameObject ring2BoxCollider;
public GameObject ring2SphereCollider;
public GameObject ring3;
public GameObject ring3BoxCollider;
public GameObject ring3SphereCollider;
public GameObject ring4;
public GameObject ring4BoxCollider;
public GameObject ring4SphereCollider;
public GameObject ring5;
public GameObject ring5BoxCollider;
public GameObject ring5SphereCollider;
public GameObject ring6;
public GameObject ring6BoxCollider;
public GameObject ring6SphereCollider;
public GameObject ring7;
public GameObject ring7BoxCollider;
public GameObject ring7SphereCollider;
public GameObject ring8;
public GameObject ring8BoxCollider;
public GameObject ring8SphereCollider;
public GameObject ring9;
public GameObject ring9BoxCollider;
public GameObject ring9SphereCollider;
public GameObject ring10;
public GameObject ring10BoxCollider;
public GameObject ring10SphereCollider;
void Awake () {
ring1 = GameObject.FindWithTag ("Ring1");
ring1BoxCollider = GameObject.FindWithTag ("Ring1BoxCollider");
ring1SphereCollider = GameObject.FindWithTag ("Ring1SphereCollider");
ring2 = GameObject.FindWithTag ("Ring2");
ring2BoxCollider = GameObject.FindWithTag ("Ring2BoxCollider");
ring2SphereCollider = GameObject.FindWithTag ("Ring2SphereCollider");
ring3 = GameObject.FindWithTag ("Ring3");
ring3BoxCollider = GameObject.FindWithTag ("Ring3BoxCollider");
ring3SphereCollider = GameObject.FindWithTag ("Ring3SphereCollider");
ring4 = GameObject.FindWithTag ("Ring4");
ring4BoxCollider = GameObject.FindWithTag ("Ring4BoxCollider");
ring4SphereCollider = GameObject.FindWithTag ("Ring4SphereCollider");
ring5 = GameObject.FindWithTag ("Ring5");
ring5BoxCollider = GameObject.FindWithTag ("Ring5BoxCollider");
ring5SphereCollider = GameObject.FindWithTag ("Ring5SphereCollider");
ring6 = GameObject.FindWithTag ("Ring6");
ring6BoxCollider = GameObject.FindWithTag ("Ring6BoxCollider");
ring6SphereCollider = GameObject.FindWithTag ("Ring6SphereCollider");
ring7 = GameObject.FindWithTag ("Ring7");
ring7BoxCollider = GameObject.FindWithTag ("Ring7BoxCollider");
ring7SphereCollider = GameObject.FindWithTag ("Ring7SphereCollider");
ring8 = GameObject.FindWithTag ("Ring8");
ring8BoxCollider = GameObject.FindWithTag ("Ring8BoxCollider");
ring8SphereCollider = GameObject.FindWithTag ("Ring8SphereCollider");
ring9 = GameObject.FindWithTag ("Ring9");
ring9BoxCollider = GameObject.FindWithTag ("Ring9BoxCollider");
ring9SphereCollider = GameObject.FindWithTag ("Ring9SphereCollider");
ring10 = GameObject.FindWithTag ("Ring10");
ring10BoxCollider = GameObject.FindWithTag ("Ring10BoxCollider");
ring10SphereCollider = GameObject.FindWithTag ("Ring10SphereCollider");
}
void OnTriggerEnter (Collider other)
{
if (other.tag == "Ring1")
{
ringOneTrigger = true;
}
if (other.tag == "Ring2")
{
ringTwoTrigger = true;
}
if (other.tag == "Ring3")
{
ringThreeTrigger = true;
}
if (other.tag == "Ring4")
{
ringFourTrigger = true;
}
if (other.tag == "Ring5")
{
ringFiveTrigger = true;
}
if (other.tag == "Ring6" )
{
ringSixTrigger = true;
}
if (other.tag == "Ring7")
{
ringSevenTrigger = true;
}
if (other.tag == "Ring8")
{
ringEightTrigger = true;
}
if (other.tag == "Ring9")
{
ringNineTrigger = true;
}
if (other.tag == "Ring10")
{
ringTenTrigger = true;
}
}
void OnTriggerExit (Collider other)
{
if (other.tag == "Ring1")
{
ringOneTrigger = false;
}
if (other.tag == "Ring2")
{
ringTwoTrigger = false;
}
if (other.tag == "Ring3")
{
ringThreeTrigger = false;
}
if (other.tag == "Ring4")
{
ringFourTrigger = false;
}
if (other.tag == "Ring5")
{
ringFiveTrigger = false;
}
if (other.tag == "Ring6" )
{
ringSixTrigger = false;
}
if (other.tag == "Ring7")
{
ringSevenTrigger = false;
}
if (other.tag == "Ring8")
{
ringEightTrigger = false;
}
if (other.tag == "Ring9")
{
ringNineTrigger = false;
}
if (other.tag == "Ring10")
{
ringTenTrigger = false;
}
}
void Update()
{
if (ringOneTrigger == true)
{
ring1BoxCollider.SetActive (true);
ring1SphereCollider.SetActive (false);
}
else
{
ring1BoxCollider.SetActive (false);
ring1SphereCollider.SetActive (true);
}
if (ringTwoTrigger == true)
{
ring2BoxCollider.SetActive (true);
ring2SphereCollider.SetActive (false);
}
else
{
ring2BoxCollider.SetActive (false);
ring2SphereCollider.SetActive (true);
}
if (ringThreeTrigger == true)
{
ring3BoxCollider.SetActive (true);
ring3SphereCollider.SetActive (false);
}
else
{
ring3BoxCollider.SetActive (false);
ring3SphereCollider.SetActive (true);
}
if (ringFourTrigger == true)
{
ring4BoxCollider.SetActive (true);
ring4SphereCollider.SetActive (false);
}
else
{
ring4BoxCollider.SetActive (false);
ring4SphereCollider.SetActive (true);
}
if (ringFiveTrigger == true)
{
ring5BoxCollider.SetActive (true);
ring5SphereCollider.SetActive (false);
}
else
{
ring5BoxCollider.SetActive (false);
ring5SphereCollider.SetActive (true);
}
if (ringSixTrigger == true)
{
ring6BoxCollider.SetActive (true);
ring6SphereCollider.SetActive (false);
}
else
{
ring6BoxCollider.SetActive (false);
ring6SphereCollider.SetActive (true);
}
if (ringSevenTrigger == true)
{
ring7BoxCollider.SetActive (true);
ring7SphereCollider.SetActive (false);
}
else
{
ring7BoxCollider.SetActive (false);
ring7SphereCollider.SetActive (true);
}
if (ringEightTrigger == true)
{
ring8BoxCollider.SetActive (true);
ring8SphereCollider.SetActive (false);
}
else
{
ring8BoxCollider.SetActive (false);
ring8SphereCollider.SetActive (true);
}
if (ringNineTrigger == true)
{
ring9BoxCollider.SetActive (true);
ring9SphereCollider.SetActive (false);
}
else
{
ring9BoxCollider.SetActive (false);
ring9SphereCollider.SetActive (true);
}
if (ringTenTrigger == true)
{
ring10BoxCollider.SetActive (true);
ring10SphereCollider.SetActive (false);
}
else
{
ring10BoxCollider.SetActive (false);
ring10SphereCollider.SetActive (true);
}
}
}