Toggleのオンオフによって、オブジェクトのsetactiveをそれぞれtrue,falseに変更するスクリプトを作成したいです
現状、以下のような方法で実装することができなかったため、困っています。
疑問点として以下のものがあります。
・toggleにアタッチしたスクリプトから、ほかのオブジェクトのsetactiveを直接変更できないのか
・Toggleonで制御するのは煩わしいので、もっといい方法がないのか
・以下のスクリプトがうまくいかない原因
public class VArrowToggleManager : MonoBehaviour
{
private Toggle toggle;
public int Toggleon = 2;
// Start is called before the first frame update
void Start()
{
toggle = GetComponent<Toggle>();
toggle.onValueChanged.AddListener(OnToggleValueChanged);
}
private void OnToggleValueChanged(bool isOn)
{
if(isOn)
{
Toggleon = 1;
}
else
{
Toggleon = 0;
}
}
}
public class TrueToggleOnOffManager : MonoBehaviour
{
public GameObject gameobject1; //toggleを取得
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
float ToggleOn = gameobject1.GetComponent<VArrowToggleManager>().Toggleon;
if (ToggleOn == 1)
{
this.gameObject.SetActive (true);
}
else if (ToggleOn == 0)
{
this.gameObject.SetActive (false);
}
}
}
toggleから、オブジェクトのオンオフを制御するのは、もっと効率の良い方法がありそうなので、改善点や、よりよい方法があれば教えていただきたいです。