Ссылка на ваш скрипт не работает, поэтому он даже не распознается Unity ...
Иногда такое случается, если вы удалите, переименуете или переместите скрипт за пределы Unity после того, как он уже был прикреплен к GameObject
.
Сначала, как сказано в предупреждении, убедитесь, что нет ошибок компилятора.
Затем, прежде всего, перетащите ваш скрипт в поле Script
отсутствующего составная часть. Это снова сообщает Unity, какой сценарий использовать для компонента, который он больше не распознает.
После этого вы снова должны увидеть свое поле Animator
, куда вы можете перетащить свой Animator, как обычно.
Итак, из комментариев я знаю, что вы имеете ошибок компилятора для вашего кода
public class Next_Script : MonoBehaviour
{
public Animator animator;
public float Yay = 0f;
// Update is called once per frame
void Update()
{
Thread.Sleep(5000);
Yay + 1f;
animator.SetFloat("Next", Yay);
}
}
Вот несколько проблем:
Вы do not хотите использовать Thread.Sleep
в Unity! Это замораживает весь ваш основной поток GUI!
Для вызова чего-то постоянно откладываемого среди множества других опций вы можете использовать, например, InvokeRepeating
, простой таймер или сопрограмму (см. Примеры ниже)
И тогда Yay + 1f;
не имеет смысла ... вы либо хотите присвоить это значение чему-то, либо использовать Yay++;
или Yay+=1
Итак, ваш код должен выглядеть так например,
public class Next_Script : MonoBehaviour
{
public Animator animator;
public float Yay = 0f;
void Start()
{
InvokeRepeating(nameof(Increase), 5f, 5f);
}
void Increase()
{
Yay += 1f;
animator.SetFloat("Next", Yay);
}
}
Или используя простой таймер в Update
public class Next_Script : MonoBehaviour
{
public Animator animator;
public float Yay = 0f;
private float timer;
void Update()
{
timer += Time.deltaTime;
if(timer < 5f) return;
timer = 0;
Yay += 1f;
animator.SetFloat("Next", Yay);
}
}
Или используя Coroutine
public class Next_Script : MonoBehaviour
{
public Animator animator;
public float Yay = 0f;
private float timer;
IEnumerator Start()
{
while (true)
{
yield return new WaitForSeconds(5f);
Yay += 1f;
animator.SetFloat("Next", Yay);
}
}
}