Здравствуйте, подскажите как запретить воспроизведение анимации из Update если нужно воспроизвести разовую. Я пытался сделать проверку на воспроизведение анимации, затем изменять значения bool, а в другом скрипте сделать проверку на значение этой переменной вследствие чего либо разрешать, либо запрещать анимации в Update. Оба скрипта:
Код
using UnityEngine; using System.Collections;
public class TakeKatana : MonoBehaviour {
public Texture StartHand; public Texture Pressed; public GameObject HandTransform; public GameObject KatanaBone; public bool KatanaOn; public bool KatanaTaking = false; public PlayerAnimator Animator; public PlayerAnimator PlayerAnimator;
public Joystick Joy; public GameObject PlayerMesh; public AnimationClip Walk; public AnimationClip Run; public AnimationClip Idle; public AnimationClip KatanaTake; public TakeKatana TakeKatana;
Попробуй использовать animation.IsPlaying("KatanaTakeClip"), тогда ты узнаешь когда анимация закончилась и сможешь использовать if'ы с Joy. А вообще надо использовать Animator (Mecanim), в нём делают систему анимаций и тогда только булево значение меняешь и он переходит в другое состояние.
Сообщение отредактировал Lertmind - Среда, 27 Августа 2014, 18:13
Добавлено (27.08.2014, 18:42) --------------------------------------------- Сделал так, со скриптом кнопки всё нормально но Animator выдаёт такую ошибку: NullReferenceException: Object reference not set to an instance of an object PlayerAnimator.Update () (at Assets/Scripts/PlayerAnimator.cs:30) Часть скрипта аниматора после внесения изменений:
Может из-за того, что ты назвал объект класса так же как и класс? public TakeKatana TakeKatana; // Это ужас Хотя даже так должно работать. По твоему коду не видно, что не так. И я не понял, зачем проверять на false, я думал что проверку if (!animation.IsPlaying("KatanaTakeClip")) ты поставишь перед всеми if Joy.
Сообщение отредактировал Lertmind - Среда, 27 Августа 2014, 19:49
Там не TakeKatana.TakeKatana, а TakeKatana.KatanaTaking. И спасибо, ваш способ помог, но мне всё равно нужна проверка на bool для выбора анимации: с мечём, без меча.