Пример #1
0
    private void PlayAction(bool high)
    {
        for (int i = 0; i < Action_.ActionEvents.Length; i++)
        {
            Action.ActionEvent ae = Action_.ActionEvents[i];
            if (ae.EventType == ActionEventType.ANIMATION && ae.RigorTime == 0)
            {
                EditorUtility.DisplayDialog("错误", "请填写动作不可打断时间", "OK");
                return;
            }
        }
        if (!EditorApplication.isPlaying)
        {
            EditorUtility.DisplayDialog("Error", "需要在运行状态下才能进行该操作", "OK");
            return;
        }
        if (!ModelLoader.self)
        {
            return;
        }
        ModelLoader.self.ResetTime();
        ModelLoader.self.transform.position = Vector3.zero;
        SkillContext context = new SkillContext();

        context.Wave = 1;

        for (int i = 0; i < 10; i++)
        {
            SkillContext.FireBoll fireBoll = new SkillContext.FireBoll();
            fireBoll.limit = 3;

            if (ModelLoader.targetList.Count > 0)
            {
                fireBoll.ro = ModelLoader.targetList[Random.Range(0, ModelLoader.targetList.Count - 1)];
            }
            context.targets.Add(fireBoll);
        }

        bool hasbuff = false;

        for (int i = 0; i < Action_.ActionEvents.Length; i++)
        {
            Action.ActionEvent ae = Action_.ActionEvents[i];
            if (ae.EventPart == EventPart.BUFF)
            {
                hasbuff = true;
                break;
            }
        }

        if (hasbuff)
        {
            ModelLoader.self.mActionPerformer.StartAction(Action_, EventPart.BUFF, high, null);
            ModelLoader.self.mActionPerformer.StartCoroutine(PlayAction(context, 2, high));
        }
        else
        {
            ModelLoader.self.mActionPerformer.StartCoroutine(PlayAction(context, 0, high));
        }
    }
Пример #2
0
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();

        this.serializedObject.Update();

        for (int i = 0; i < Action_.ActionEvents.Length; i++)
        {
            Action.ActionEvent ae = Action_.ActionEvents[i];
            if (string.IsNullOrEmpty(ae.ActionEventName))
            {
                if (ae.EventType == ActionEventType.ANIMATION)
                {
                    ae.ActionEventName = ae.State.ToString();
                }
                else if (!string.IsNullOrEmpty(ae.SourcePath))
                {
                    ae.ActionEventName = Path.GetFileName(ae.SourcePath);
                }
                else if (!string.IsNullOrEmpty(ae.AudioPath))
                {
                    ae.ActionEventName = Path.GetFileName(ae.AudioPath);
                }
                else
                {
                    ae.ActionEventName = ae.EventType.ToString().ToLower();
                }
            }
        }

        #region PlayAction

        if (GUILayout.Button("PlayAction"))
        {
            PlayAction(true);
        }
        if (GUILayout.Button("PlayLowAction"))
        {
            PlayAction(false);
        }
        #endregion
    }
Пример #3
0
    public void Initialize(RoleObject parent)
    {
        for (int i = 0; i < config.ActionEvents.Length; ++i)
        {
            Action.ActionEvent actionevent = config.ActionEvents[i];
            if (actionevent.EventPart != eventpart)
            {
                continue;
            }
            List <ZWActionEvent> eventlist = null;
            float time        = 0;
            float Duration    = 0;
            int   fireballNum = 0;
            switch (actionevent.EventType)
            {
            case ActionEventType.ANIMATION:
                eventlist = ZWActionEvent.CreateEffect <ActionEventPlayAnimation>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.EFFECT:
                eventlist = ZWActionEvent.CreateEffect <ActionEventStartEffectOnSelf>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.FIREBALL:
                eventlist = ZWActionEvent.CreateEffect <ActionEventStartEffectFireBall>(parent, this, actionevent, out Duration, this.context, fireballNum);
                fireballNum++;
                break;

            case ActionEventType.AUDIO:
                eventlist = ZWActionEvent.CreateEffect <ActionEventPlaySound>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.CAMERA_SHACK:
                eventlist = ZWActionEvent.CreateEffect <ActionEventCameraShakeEffect>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.SCREEN_BLACK:
                eventlist = ZWActionEvent.CreateEffect <ActionEventScreenEffect>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.RADIALBLUR:
                eventlist = ZWActionEvent.CreateEffect <ActionEventRadialBlur>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.DEAD:
                eventlist = ZWActionEvent.CreateEffect <ActionEventDead>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.SLOW:
                eventlist = ZWActionEvent.CreateEffect <ActionEventSlow>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.HEATDISTORT:
                eventlist = ZWActionEvent.CreateEffect <ActionEventStartEffectOnSelf>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.HIDING:
                eventlist = ZWActionEvent.CreateEffect <ActionEventHiding>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.TRANSFORM:
                eventlist = ZWActionEvent.CreateEffect <ActionEventTransform>(parent, this, actionevent, out Duration);
                break;

            case ActionEventType.XPBODYCHANGE:
                eventlist = ZWActionEvent.CreateEffect <ActionEventXPBodyChange>(parent, this, actionevent, out Duration);
                break;
            }
            time = Mathf.Max(Duration, time);
            for (int j = 0; j < eventlist.Count; j++)
            {
                this.actionEvents.AddTail(eventlist[j]);
            }

            this.LifeTime += time;
        }
    }