Ссылка на ваш сценарий не работает, поэтому Unity даже не распознает ее...
Иногда это происходит, если вы удаляете, переименовываете или перемещаете скрипт за пределы Unity после того, как он уже был прикреплен к файлу GameObject
.
Сначала, как сказано в предупреждении, убедитесь в отсутствии ошибок компилятора.
Затем в первую очередь перетащите свой скрипт в поле Script
отсутствующего компонента. Это снова сообщает Unity, какой сценарий использовать для компонента, который он больше не распознает.
После этого вы снова должны увидеть свое поле 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);
}
}
Вот несколько проблем:
Вы не хотите использовать Thread.Sleep
в Unity! Это замораживает весь ваш основной поток графического интерфейса!
Для вызова чего-то, неоднократно отложенного среди множества других опций, вы можете использовать, например. 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);
}
}
}
person
derHugo
schedule
19.06.2020