예제 #1
0
    public ActionAnim GetActionStep(ref int index)
    {
        if (index == 0)
        {
            if (comboSteps.Count == 0)
            {
                index = 0;
            }
            else
            {
                index++;
            }
            return(firstStep);
        }

        if (index > comboSteps.Count - 1)
        {
            index = 0;
        }

        ActionAnim returnValue = comboSteps[index - 1];

        index++;
        if (index > comboSteps.Count - 1)
        {
            index = 0;
        }
        return(returnValue);
    }
예제 #2
0
    public override void ActionAnimSkip(ActionAnim action)
    {
        if (action.method == AnimMethod.PlayCustom && action._anim && action.clip)
        {
            AdvGame.CleanUnusedClips(action._anim);

            WrapMode wrap = WrapMode.Once;
            if (action.playMode == AnimPlayMode.PlayOnceAndClamp)
            {
                wrap = WrapMode.ClampForever;
            }
            else if (action.playMode == AnimPlayMode.Loop)
            {
                wrap = WrapMode.Loop;
            }

            AdvGame.PlayAnimClipFrame(action._anim, 0, action.clip, action.blendMode, wrap, 0f, null, 1f);
        }

        else if (action.method == AnimMethod.StopCustom && action._anim && action.clip)
        {
            AdvGame.CleanUnusedClips(action._anim);
            action._anim.Blend(action.clip.name, 0f, 0f);
        }

        else if (action.method == AnimMethod.BlendShape && action.shapeKey > -1)
        {
            if (action.shapeObject)
            {
                action.shapeObject.Change(action.shapeKey, action.shapeValue, 0f);
            }
        }
    }
예제 #3
0
    public override void ActionAnimSkip(ActionAnim action)
    {
        if (!action.isRunning)
        {
            action.isRunning = true;

            if (action._anim2D && action.clip2D != "")
            {
                if (action.method == AnimMethod.PlayCustom)
                {
                    if (action.wrapMode2D == ActionAnim.WrapMode2D.Loop)
                    {
                        tk2DIntegration.PlayAnimation(action._anim2D, action.clip2D, true, WrapMode.Loop);
                    }
                    else if (action.wrapMode2D == ActionAnim.WrapMode2D.PingPong)
                    {
                        tk2DIntegration.PlayAnimation(action._anim2D, action.clip2D, true, WrapMode.PingPong);
                    }
                    else
                    {
                        tk2DIntegration.PlayAnimation(action._anim2D, action.clip2D, true, WrapMode.Once);
                    }
                }

                else if (action.method == AnimMethod.StopCustom)
                {
                    tk2DIntegration.StopAnimation(action._anim2D);
                }
            }
        }
    }
예제 #4
0
    public override void ActionAnimSkip(ActionAnim action)
    {
        if (action.methodMecanim == AnimMethodMecanim.ChangeParameterValue && action.animator && action.parameterName != "")
        {
            if (action.mecanimParameterType == MecanimParameterType.Float)
            {
                action.animator.SetFloat(action.parameterName, action.parameterValue);
            }
            else if (action.mecanimParameterType == MecanimParameterType.Int)
            {
                action.animator.SetInteger(action.parameterName, (int)action.parameterValue);
            }
            else if (action.mecanimParameterType == MecanimParameterType.Bool)
            {
                bool paramValue = false;
                if (action.parameterValue > 0f)
                {
                    paramValue = true;
                }
                action.animator.SetBool(action.parameterName, paramValue);
            }
            else if (action.mecanimParameterType == MecanimParameterType.Trigger)
            {
                action.animator.SetTrigger(action.parameterName);
            }
        }

        else if (action.methodMecanim == AnimMethodMecanim.PlayCustom && action.animator)
        {
            if (action.clip2D != "")
            {
                action.animator.CrossFade(action.clip2D, action.fadeTime, action.layerInt);
            }
        }
    }
예제 #5
0
 public ActionInput GetFirstInput()
 {
     if (firstStep == null)
     {
         firstStep = new ActionAnim();
     }
     return(firstStep.input);
 }
예제 #6
0
    public override float ActionAnimRun(ActionAnim action)
    {
        if (!action.isRunning)
        {
            action.isRunning = true;

            if (action._anim2D && action.clip2D != "")
            {
                if (action.method == AnimMethod.PlayCustom)
                {
                    if (action.wrapMode2D == ActionAnim.WrapMode2D.Loop)
                    {
                        tk2DIntegration.PlayAnimation(action._anim2D, action.clip2D, true, WrapMode.Loop);
                    }
                    else if (action.wrapMode2D == ActionAnim.WrapMode2D.PingPong)
                    {
                        tk2DIntegration.PlayAnimation(action._anim2D, action.clip2D, true, WrapMode.PingPong);
                    }
                    else
                    {
                        tk2DIntegration.PlayAnimation(action._anim2D, action.clip2D, true, WrapMode.Once);
                    }

                    if (action.willWait)
                    {
                        return(action.defaultPauseTime);
                    }
                }

                else if (action.method == AnimMethod.StopCustom)
                {
                    tk2DIntegration.StopAnimation(action._anim2D);
                }

                else if (action.method == AnimMethod.BlendShape)
                {
                    Debug.LogWarning("BlendShapes not available for 2D animation.");
                    return(0f);
                }
            }
        }
        else
        {
            if (action._anim2D && action.clip2D != "")
            {
                if (!tk2DIntegration.IsAnimationPlaying(action._anim2D, action.clip2D))
                {
                    action.isRunning = false;
                }
                else
                {
                    return(Time.deltaTime);
                }
            }
        }

        return(0f);
    }
예제 #7
0
 public override void ActionAnimSkip(ActionAnim action)
 {
     if (action.animator && action.clip2D != "")
     {
         if (action.method == AnimMethod.PlayCustom)
         {
             action.animator.Play(action.clip2D, action.layerInt, 0.8f);
         }
     }
 }
예제 #8
0
 public static void DeepCopySteps(Action from, Action to)
 {
     to.comboSteps = new List <ActionAnim>();
     for (int i = 0; i < from.comboSteps.Count; i++)
     {
         ActionAnim a = new ActionAnim();
         a.input      = from.comboSteps[i].input;
         a.targetAnim = from.comboSteps[i].targetAnim;
         to.comboSteps.Add(a);
     }
 }
예제 #9
0
 public override void ActionAnimSkip(ActionAnim action)
 {
     if (action.methodMecanim == AnimMethodMecanim.BlendShape)
     {
         if (action.shapeObject)
         {
             action.shapeObject.Change(action.shapeKey, action.shapeValue, action.fadeTime);
         }
     }
     else
     {
         ActionAnimRun(action);
     }
 }
예제 #10
0
    public override void ActionAnimGUI(ActionAnim action, List <ActionParameter> parameters)
    {
                #if UNITY_EDITOR
        action.methodMecanim = (AnimMethodMecanim)EditorGUILayout.EnumPopup("Method:", action.methodMecanim);

        if (action.methodMecanim == AnimMethodMecanim.ChangeParameterValue || action.methodMecanim == AnimMethodMecanim.PlayCustom)
        {
            action.parameterID = AC.Action.ChooseParameterGUI("Animator:", parameters, action.parameterID, ParameterType.GameObject);
            if (action.parameterID >= 0)
            {
                action.constantID = 0;
                action.animator   = null;
            }
            else
            {
                action.animator = (Animator)EditorGUILayout.ObjectField("Animator:", action.animator, typeof(Animator), true);

                action.constantID = action.FieldToID <Animator> (action.animator, action.constantID);
                action.animator   = action.IDToField <Animator> (action.animator, action.constantID, false);
            }
        }

        if (action.methodMecanim == AnimMethodMecanim.ChangeParameterValue)
        {
            action.parameterName        = EditorGUILayout.TextField("Parameter to affect:", action.parameterName);
            action.mecanimParameterType = (MecanimParameterType)EditorGUILayout.EnumPopup("Parameter type:", action.mecanimParameterType);
            if (action.mecanimParameterType != MecanimParameterType.Trigger)
            {
                action.parameterValue = EditorGUILayout.FloatField("Set as value:", action.parameterValue);
            }
        }
        else if (action.methodMecanim == AnimMethodMecanim.PlayCustom)
        {
            action.clip2D   = EditorGUILayout.TextField("Clip:", action.clip2D);
            action.layerInt = EditorGUILayout.IntField("Mecanim layer:", action.layerInt);
            action.fadeTime = EditorGUILayout.Slider("Transition time:", action.fadeTime, 0f, 2f);
            action.willWait = EditorGUILayout.Toggle("Wait until finish?", action.willWait);
        }
        else if (action.methodMecanim == AnimMethodMecanim.BlendShape)
        {
            EditorGUILayout.HelpBox("This method is not compatible with Sprites Unity Complex.", MessageType.Info);
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(action);
        }
                #endif
    }
예제 #11
0
    public override string ActionAnimLabel(ActionAnim action)
    {
        string label = "";

        if (action._anim2D)
        {
            label = action._anim2D.name;

            if (action.method == AnimMethod.PlayCustom && action.clip2D != "")
            {
                label += " - " + action.clip2D;
            }
        }

        return(label);
    }
예제 #12
0
    public override string ActionAnimLabel(ActionAnim action)
    {
        string label = "";

        if (action.animator)
        {
            label = action.animator.name;

            if (action.methodMecanim == AnimMethodMecanim.ChangeParameterValue && action.parameterName != "")
            {
                label += " - " + action.parameterName;
            }
        }

        return(label);
    }
예제 #13
0
    public ActionAnim CurAction()
    {
        if (m_steps.Count <= 0)
        {
            Debug.LogError("Not settings action steps");
            return(null);
        }

        ActionAnim actionAnim = m_steps[m_nStepIdx];

        m_nStepIdx++;
        if (m_nStepIdx >= m_steps.Count)
        {
            ResetActionAnim();
        }

        return(actionAnim);
    }
예제 #14
0
    public override void ActionAnimGUI(ActionAnim action, List <ActionParameter> parameters)
    {
                #if UNITY_EDITOR
        action.method = (AnimMethod)EditorGUILayout.EnumPopup("Method:", action.method);

        action.parameterID = AC.Action.ChooseParameterGUI("Object:", parameters, action.parameterID, ParameterType.GameObject);
        if (action.parameterID >= 0)
        {
            action.constantID = 0;
            action._anim2D    = null;
        }
        else
        {
            action._anim2D = (Transform)EditorGUILayout.ObjectField("Object:", action._anim2D, typeof(Transform), true);

            action.constantID = action.FieldToID(action._anim2D, action.constantID);
            action._anim2D    = action.IDToField(action._anim2D, action.constantID, false);
        }

        if (action.method == AnimMethod.PlayCustom)
        {
            action.clip2D     = EditorGUILayout.TextField("Clip:", action.clip2D);
            action.wrapMode2D = (ActionAnim.WrapMode2D)EditorGUILayout.EnumPopup("Play mode:", action.wrapMode2D);

            if (action.wrapMode2D == ActionAnim.WrapMode2D.Once)
            {
                action.willWait = EditorGUILayout.Toggle("Wait until finish?", action.willWait);
            }
            else
            {
                action.willWait = false;
            }
        }
        else if (action.method == AnimMethod.BlendShape)
        {
            EditorGUILayout.HelpBox("BlendShapes are not available in 2D animation.", MessageType.Info);
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(action);
        }
                #endif
    }
예제 #15
0
    public override float ActionAnimRun(ActionAnim action)
    {
        if (!action.isRunning)
        {
            action.isRunning = true;

            if (action.animator && action.clip2D != "")
            {
                if (action.method == AnimMethod.PlayCustom)
                {
                    action.animator.CrossFade(action.clip2D, action.fadeTime, action.layerInt);

                    if (action.willWait)
                    {
                        return(action.defaultPauseTime);
                    }
                }
                else if (action.method == AnimMethod.BlendShape)
                {
                    Debug.LogWarning("BlendShapes not available for 2D animation.");
                    return(0f);
                }
            }
        }
        else
        {
            if (action.animator && action.clip2D != "")
            {
                if (action.animator.GetCurrentAnimatorStateInfo(action.layerInt).normalizedTime < 1f)
                {
                    return(action.defaultPauseTime / 6f);
                }
                else
                {
                    action.isRunning = false;
                    return(0f);
                }
            }
        }

        return(0f);
    }
예제 #16
0
    public override void ActionAnimGUI(ActionAnim action, List <ActionParameter> parameters)
    {
                #if UNITY_EDITOR
        action.method = (AnimMethod)EditorGUILayout.EnumPopup("Method:", action.method);

        if (action.method == AnimMethod.PlayCustom)
        {
            action.parameterID = AC.Action.ChooseParameterGUI("Animator:", parameters, action.parameterID, ParameterType.GameObject);
            if (action.parameterID >= 0)
            {
                action.constantID = 0;
                action.animator   = null;
            }
            else
            {
                action.animator = (Animator)EditorGUILayout.ObjectField("Animator:", action.animator, typeof(Animator), true);

                action.constantID = action.FieldToID <Animator> (action.animator, action.constantID);
                action.animator   = action.IDToField <Animator> (action.animator, action.constantID, false);
            }

            action.clip2D   = EditorGUILayout.TextField("Clip:", action.clip2D);
            action.layerInt = EditorGUILayout.IntField("Mecanim layer:", action.layerInt);
            action.fadeTime = EditorGUILayout.Slider("Transition time:", action.fadeTime, 0f, 2f);
            action.willWait = EditorGUILayout.Toggle("Wait until finish?", action.willWait);
        }
        else if (action.method == AnimMethod.StopCustom)
        {
            EditorGUILayout.HelpBox("'Stop Custom' is not available for Unity-based 2D animation.", MessageType.Info);
        }
        else if (action.method == AnimMethod.BlendShape)
        {
            EditorGUILayout.HelpBox("BlendShapes are not available in 2D animation.", MessageType.Info);
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(action);
        }
                #endif
    }
예제 #17
0
    public override string ActionAnimLabel(ActionAnim action)
    {
        string label = "";

        if (action._anim)
        {
            label = action._anim.name;

            if (action.method == AnimMethod.PlayCustom && action.clip)
            {
                label += " - Play " + action.clip.name;
            }
            else if (action.method == AnimMethod.StopCustom && action.clip)
            {
                label += " - Stop " + action.clip.name;
            }
            else if (action.method == AnimMethod.BlendShape)
            {
                label += " - Shapekey";
            }
        }

        return(label);
    }
예제 #18
0
파일: AnimEngine.cs 프로젝트: IJkeB/Ekster1
 public virtual void ActionAnimGUI(ActionAnim action, List <ActionParameter> parameters)
 {
             #if UNITY_EDITOR
             #endif
 }
예제 #19
0
    public override float ActionAnimRun(ActionAnim action)
    {
        if (!action.isRunning)
        {
            action.isRunning = true;

            if (action.methodMecanim == AnimMethodMecanim.ChangeParameterValue && action.animator && action.parameterName != "")
            {
                if (action.mecanimParameterType == MecanimParameterType.Float)
                {
                    action.animator.SetFloat(action.parameterName, action.parameterValue);
                }
                else if (action.mecanimParameterType == MecanimParameterType.Int)
                {
                    action.animator.SetInteger(action.parameterName, (int)action.parameterValue);
                }
                else if (action.mecanimParameterType == MecanimParameterType.Bool)
                {
                    bool paramValue = false;
                    if (action.parameterValue > 0f)
                    {
                        paramValue = true;
                    }
                    action.animator.SetBool(action.parameterName, paramValue);
                }
                else if (action.mecanimParameterType == MecanimParameterType.Trigger)
                {
                    action.animator.SetTrigger(action.parameterName);
                }

                return(0f);
            }

            else if (action.methodMecanim == AnimMethodMecanim.PlayCustom && action.animator)
            {
                if (action.clip2D != "")
                {
                    action.animator.CrossFade(action.clip2D, action.fadeTime, action.layerInt);

                    if (action.willWait)
                    {
                        return(action.defaultPauseTime);
                    }
                }
            }
        }
        else if (action.methodMecanim == AnimMethodMecanim.PlayCustom)
        {
            if (action.animator && action.clip2D != "")
            {
                if (action.animator.GetCurrentAnimatorStateInfo(action.layerInt).normalizedTime < 1f)
                {
                    return(action.defaultPauseTime / 6f);
                }
                else
                {
                    action.isRunning = false;
                    return(0f);
                }
            }
        }

        return(0f);
    }
예제 #20
0
 public override void ActionAnimAssignValues(ActionAnim action, List <ActionParameter> parameters)
 {
     action.animator = action.AssignFile <Animator> (parameters, action.parameterID, action.constantID, action.animator);
 }
예제 #21
0
파일: AnimEngine.cs 프로젝트: IJkeB/Ekster1
 public virtual void ActionAnimAssignValues(ActionAnim action, List <ActionParameter> parameters)
 {
 }
예제 #22
0
파일: AnimEngine.cs 프로젝트: IJkeB/Ekster1
 public virtual float ActionAnimRun(ActionAnim action)
 {
     return(0f);
 }
예제 #23
0
    public override bool GetDamage(AttackStat attackStat, HitType hitType = HitType.Normal, CUnit unit = null, ActionAnim actionAnim = null)
    {
        bool isDead = false;

        if (m_status.CurState == State.Dead)
        {
            return(false);
        }

        float fMotionMul = actionAnim != null ? actionAnim.fMotionMagnifi : 1f;

        if (m_status.GetDamage(attackStat, out isDead, fMotionMul))
        {
            StartCoroutine(HitUiCoroutine());
            MainHookClose();
            m_actCtrl.ResetAttack();
            m_actCtrl.GetHitAction(hitType);

            if (unit == null)
            {
                return(true);
            }

            if (m_actCtrl.Target != null)
            {
                if (unit.tag == "Player")
                {
                    m_actCtrl.Target = unit;
                }
            }

            return(true);
        }

        if (isDead)
        {
            DeathProcess();
        }

        return(false);
    }
 public override float ActionAnimRun(ActionAnim action)
 {
     Debug.Log("heyhey " + action);
     return(base.ActionAnimRun(action));
 }
 public override void ActionAnimAssignValues(ActionAnim action, List <ActionParameter> parameters)
 {
     base.ActionAnimAssignValues(action, parameters);
     Debug.Log("bitconeneeeeeeect");
 }
예제 #26
0
    public override void ApponentColliderIn(Stat.AttackStat attackStat, HitType hitType, ActionAnim actionAnim = null)
    {
        float fMul = actionAnim == null ? 1f : actionAnim.fMotionMagnifi;
        int   nDmg = CalculateAttributes.CaculateDamage(attackStat, fMul, m_resister);

        nDmg    = (int)(nDmg * m_dmgReduce);
        m_nDmg += nDmg;

        if (m_nDmg >= m_dmgLimit)
        {
            m_nDmg = 0;
            m_unit.GetDamage(attackStat, hitType, null, actionAnim);
        }
    }
예제 #27
0
    public override void ApponentColliderIn(Stat.AttackStat attackStat, HitType hitType, ActionAnim actionAnim = null)
    {
        m_unit.GetDamage(attackStat, hitType, null, actionAnim);

        if (m_armorStat.armorDamage >= m_armorStat.armorLimit)
        {
            StartCoroutine(ArmorBreakCoroutine());
        }
        else
        {
            float fMul = actionAnim == null ? 1f : actionAnim.fMotionMagnifi;
            m_armorStat.armorDamage +=
                CalculateAttributes.CaculateDamage(attackStat, fMul, m_armorResister);
        }
    }
예제 #28
0
파일: AnimEngine.cs 프로젝트: IJkeB/Ekster1
 public virtual string ActionAnimLabel(ActionAnim action)
 {
     return("");
 }
예제 #29
0
    public override void ActionAnimGUI(ActionAnim action, List <ActionParameter> parameters)
    {
                #if UNITY_EDITOR
        action.methodMecanim = (AnimMethodMecanim)EditorGUILayout.EnumPopup("Method:", action.methodMecanim);

        if (action.methodMecanim == AnimMethodMecanim.ChangeParameterValue || action.methodMecanim == AnimMethodMecanim.PlayCustom)
        {
            action.parameterID = AC.Action.ChooseParameterGUI("Animator:", parameters, action.parameterID, ParameterType.GameObject);
            if (action.parameterID >= 0)
            {
                action.constantID = 0;
                action.animator   = null;
            }
            else
            {
                action.animator = (Animator)EditorGUILayout.ObjectField("Animator:", action.animator, typeof(Animator), true);

                action.constantID = action.FieldToID <Animator> (action.animator, action.constantID);
                action.animator   = action.IDToField <Animator> (action.animator, action.constantID, false);
            }
        }

        if (action.methodMecanim == AnimMethodMecanim.ChangeParameterValue)
        {
            action.parameterName        = EditorGUILayout.TextField("Parameter to affect:", action.parameterName);
            action.mecanimParameterType = (MecanimParameterType)EditorGUILayout.EnumPopup("Parameter type:", action.mecanimParameterType);
            if (action.mecanimParameterType != MecanimParameterType.Trigger)
            {
                action.parameterValue = EditorGUILayout.FloatField("Set as value:", action.parameterValue);
            }
        }
        else if (action.methodMecanim == AnimMethodMecanim.PlayCustom)
        {
            action.clip2D   = EditorGUILayout.TextField("Clip:", action.clip2D);
            action.layerInt = EditorGUILayout.IntField("Mecanim layer:", action.layerInt);
            action.fadeTime = EditorGUILayout.Slider("Transition time:", action.fadeTime, 0f, 2f);
            action.willWait = EditorGUILayout.Toggle("Wait until finish?", action.willWait);
        }
        else if (action.methodMecanim == AnimMethodMecanim.BlendShape)
        {
            action.isPlayer = EditorGUILayout.Toggle("Is player?", action.isPlayer);
            if (!action.isPlayer)
            {
                action.parameterID = AC.Action.ChooseParameterGUI("Object:", parameters, action.parameterID, ParameterType.GameObject);
                if (action.parameterID >= 0)
                {
                    action.constantID  = 0;
                    action.shapeObject = null;
                }
                else
                {
                    action.shapeObject = (Shapeable)EditorGUILayout.ObjectField("Object:", action.shapeObject, typeof(Shapeable), true);

                    action.constantID  = action.FieldToID <Shapeable> (action.shapeObject, action.constantID);
                    action.shapeObject = action.IDToField <Shapeable> (action.shapeObject, action.constantID, false);
                }
            }

            action.shapeKey   = EditorGUILayout.IntField("Shape key:", action.shapeKey);
            action.shapeValue = EditorGUILayout.Slider("Shape value:", action.shapeValue, 0f, 100f);
            action.fadeTime   = EditorGUILayout.Slider("Transition time:", action.fadeTime, 0f, 2f);
            action.willWait   = EditorGUILayout.Toggle("Wait until finish?", action.willWait);
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(action);
        }
                #endif
    }
예제 #30
0
 public override void ActionAnimAssignValues(ActionAnim action, List <ActionParameter> parameters)
 {
     action._anim2D = action.AssignFile(parameters, action.parameterID, action.constantID, action._anim2D);
 }