- Home /
script only working on first run
so I have a bunch of slots in an array (for an inventory system) when I scroll onto the slot it should go bigger and set the bool selected to true but the 4th element only works on the first run. It goes bigger but does not set "selected" to true. I have tried cloning one of the working slots but it still only works on the first run. here's the script Note: the thing that sets it to true is in a loop in a different script using System.Collections; using System.Collections.Generic; using UnityEngine;
public class Slot : MonoBehaviour {
public bool selected = false;
void Update () {
if (selected) {
//when selected
transform.localScale = new Vector3 (2, 2, 2);
selected = false;
} else {
//when not selected
transform.localScale = new Vector3 (1, 1, 1);
}
}
}
it sets "selected" to false so when I move off of the object its is no longer selected
Answer by LocalNoob · Jul 31, 2017 at 04:27 PM
The problem is probably in your other script(if you only have a problem with element number 4 check if it has all the required scripts attached and values set). Post your other script here.
Note: You should use events to execute the code when selected==true. Using it in update is inefficient cause it checks every frame and sets the objects scale every frame! With events it only happens once(when it gets selected) instead of thousands of times.
@LocalNoob using System.Collections; using System.Collections.Generic; using UnityEngine;
public class InventoryControlloer : $$anonymous$$onoBehaviour {
public GameObject[] Slots;
public int SelectedSlot;
void Start () {
}
void Update () {
//scroll through hotbar
if (Input.GetAxis ("$$anonymous$$ouse ScrollWheel") > 0) {
SelectedSlot++;
}
if (Input.GetAxis ("$$anonymous$$ouse ScrollWheel") < 0) {
SelectedSlot--;
}
//boundries
if (SelectedSlot > Slots.Length - 1) {
SelectedSlot = 0;
}
if (SelectedSlot < 0) {
SelectedSlot = Slots.Length - 1;
}
Slots [SelectedSlot].gameObject.GetComponent<Slot>().selected = true;
}
}
I cant see any error in your scripts...I am guessing it is probably related to your slot, check if it has all the required stuff attached to it and see what happens to it at runtime maybe some components get removed or your array gets messed up
the arrays are fine, I duplicated a working slot and placed that in element 4 but yet it still didn't work
Your answer
Follow this Question
Related Questions
Weird double-tap bug when I use standart controller (Android) 0 Answers
Missing objects 1 Answer
Objects not becoming active with script 1 Answer
Object Changing Y Coordinate in Game View 0 Answers
Strange graphical bug in Editor GUI 1 Answer