Здравствуйте, мне нужна помощь с созданием задержки перед выполнением части скрипта, нужно что-бы меч перемещался в руку через долю секунды после начала анимации. Пробовал через EInumerator и WaitForSeconds, но выводилась ошибка про неверный символ. Вот скрипт:
Код
using UnityEngine; using System.Collections;
public class TakeKatana : MonoBehaviour {
public Texture StartHand; public Texture Pressed; public GameObject HandTransform; public GameObject KatanaBone; public float KatanaOn = 0; public PlayerAnimator Animator; public PlayerAnimator PlayerAnimator;
Лучше так не делать, правильней привязывать такие события к кадрам анимации, т.к. компы могут тормозить и потом выдавать всякие нелепости. я б логику писал так: 1) Если нажата кнопка, а меч не в руке, и анимация еще не проигрывается, - то проигрывай анимацию. 2) если анимация проигрывается и animation["Take"].time > 0.5 и меч не в руке, то спавни меч в руку 3) если анимация > [почти конец анимации], то Crossfade на idle.
Сообщение отредактировал GantZ_Yaka - Четверг, 28 Августа 2014, 21:52
Это парашный таймер, лучше использовать Coroutine, про который автор темы и говорил, только он не понял как с ним работать. Как с ними работать хорошо написано здесь http://unitypatterns.com/.
Но в данном случае, лучше делать как написал GantZ_Yaka.