Dear members,
Can anyone help me please? I am a beginner.
I need to create simple script attached to the UI Toggle
button to be able to deactivate multiple 3D objects from the list except one 3D object I need to see solo. That solo object is not included in the object list (I can enable that single object using SetActive
event in UI Toggle
).
So one object will be activated while all others from the list would be deactivated.
Problem is after I disable UI Toggle
, I can not get active all the objects from the list again.
Can anybody write that script for me please ?
I believe it is not any problem for you guys.
Thank you very much for any quick help.
using UnityEngine;
using UnityEngine.UI;
public class ToggleTrouble : MonoBehaviour
{
[SerializeField] Toggle _toggle;
[Header("ON")]
[SerializeField] GameObject[] _setActiveWhenEnabled;
[SerializeField] GameObject[] _setInactiveWhenEnabled;
[Header("OFF")]
[SerializeField] GameObject[] _setActiveWhenDisabled;
[SerializeField] GameObject[] _setInactiveWhenDisabled;
void Awake ()
{
_toggle = GetComponent<Toggle>();
// OnToggleValueChanged( _toggle.isOn );// THIS INITIALIZATION IS OPTIONAL
_toggle.onValueChanged.AddListener( OnToggleValueChanged );
}
void OnToggleValueChanged ( bool newValue )
{
if( newValue )
{
foreach( GameObject go in _setActiveWhenEnabled ) go.SetActive( true );
foreach( GameObject go in _setInactiveWhenEnabled ) go.SetActive( false );
}
else
{
foreach( GameObject go in _setActiveWhenDisabled ) go.SetActive( true );
foreach( GameObject go in _setInactiveWhenDisabled ) go.SetActive( false );
}
}
}