【发布时间】:2022-06-10 18:46:17
【问题描述】:
我有一个按钮,应该通过运行 ObjectTheme 脚本中的“ToggleTheme”方法在我的游戏中切换明暗模式,我希望受明暗模式影响的所有对象都具有该按钮。 ToggleTheme 只是更改布尔值“DarkMode”,因为所有对象的转换都使用此 DarkMode 布尔值。如果我只是分配对象并选择 ObjectTheme.ToggleTheme,这一切都很好,但是如果我分配对象的预制件并选择 ObjectTheme.ToggleTheme,我会在按钮按下时收到警告“动画没有播放 AnimatorController”。有没有办法解决这个问题,因为在每个场景中分配每个对象是不切实际的,并且其中一个对象在游戏的每个关卡中都有多达 30 个副本?
附:我知道如果我只使用切换而不是按钮可能会更容易,但我是 Unity 的新手,我无法让切换按我想要的方式工作,所以我改用按钮.
这是 ObjectTheme 脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ObjectTheme : MonoBehaviour
{
public Animator animator;
// Start is called before the first frame update
void Start()
{
animator = GetComponent<Animator>();
}
// Update is called once per frame
public void ToggleTheme()
{
if(animator.GetBool("DarkMode") == true)
{
animator.SetBool("DarkMode", false);
}
else
{
animator.SetBool("DarkMode", true);
}
}
}
【问题讨论】:
标签: c# button onclick animator prefab