Object appear and disappear Code
I Made a code to make an object disappear on left click and a reappear on Right click. I probably Made this completely wrong because I am new to coding but this is the script.
function Update() { if (Input.GetMouseButtonDown(0)) gameObject.tag = "Change".active = true; if (Input.GetMouseButtonDown(1)) gameObject.tag = "Change".active = false; }
Answer by mmciver · Feb 18, 2017 at 04:20 AM
You don't specify a question here, however the script looks a bit off, this should be closer to what you want:
void Update() {
if (Input.GetMouseButtonDown(0)) {
gameObject.active = true;
}
if (Input.GetMouseButtonDown(1)) {
gameObject.active = false;
}
}
There shouldn't be a reason to use the gameObject.tag unless you have this in a script NOT attached to the gameObject you are hiding/showing, and are using the tag to find the gameObject. If you are using it to find the gameObject, then you would use FindGameObjectsWithTag("Change") to get an array (0 or more), and then iterate through those to change the .active as appropriate.
Answer by Cbob_101 · Feb 19, 2017 at 12:40 AM
OK thank you and yes I just realized I forgot to ask my question is that i want it on my character and any object with the tag to be affected by the script
void Update() {
if (Input.Get$$anonymous$$ouseButtonDown(0)) {
foreach (GameObject object in GameObject.FindByTag("Change")) {
object.active = true;
}
}
if (Input.Get$$anonymous$$ouseButtonDown(0)) {
foreach (GameObject object in GameObject.FindByTag("Change")) {
object.active = false;
}
}
}
Untested code, but should work.
If you expect to do this a lot and the objects with the tag remain constant, then it would be better to set a variable in the script that holds them, with:
GameObject[] changeObjects;
changeObjects = GameObject.FindByTag("Change");
then
void Update() {
if (Input.Get$$anonymous$$ouseButtonDown(0)) {
foreach (GameObject object in changeObjects) {
object.active = true;
}
}
if (Input.Get$$anonymous$$ouseButtonDown(0)) {
foreach (GameObject object in changeObjects) {
object.active = false;
}
}
}
Your answer