В моем проекте Unity у меня есть кнопка сжатия и шар. Когда я нажимаю кнопку сжатия, шар должен воспроизводить анимацию сжатия.
Я пытаюсь изменить переменную «shrink», чтобы анимация могла воспроизводиться.
Код кнопки сжатия:
private ShrinkBall referenceScript;
void Start()
{
referenceScript = ball.GetComponent<ShrinkBall>();
}
void OnMouseDown()
{
if (referenceScript.shrink == true)
{
referenceScript.shrink = true;
} else
{
referenceScript.shrink = false;
}
}
Сценарий мяча:
public bool shrink = false;
private Animator shrinkAnim;
void Start()
{
shrinkAnim = GetComponent<Animator>();
}
void Update()
{
if (shrink == false)
{
shrinkAnim.SetBool("shrink", false);
} else
{
shrinkAnim.SetBool("shrink", true);
}
}
Когда я нажимаю кнопку сжатия, переменная «сжатие» остается ложной. Я знаю, что он обращается к нему, потому что первоначально он сказал мне, что это вне области видимости, поэтому я сделал его общедоступной переменной.
Таким образом, анимация никогда не воспроизводится, потому что сжатие не меняется. Есть идеи?