| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using System.Security;
- namespace Flux
- {
- [FEvent("Skill/移动效果/移动")]
- public class FMoveEvent : FEvent
- {
- [HideInInspector]
- [SerializeField]
- private int _moveType = 0;
- public int MoveType
- {
- get { return _moveType; }
- }
- [HideInInspector]
- [SerializeField]
- private float _initSpeed = 0;
- public float InitSpeed
- {
- get
- {
- return _initSpeed;
- }
- }
- [HideInInspector]
- [SerializeField]
- private float _acceleration = 0;
- public float Acceleration
- {
- get { return _acceleration; }
- }
- [HideInInspector]
- [SerializeField]
- private float _moveDistance = 0;
- public float MoveDistance
- {
- get { return _moveDistance; }
- }
- [HideInInspector]
- [SerializeField]
- private int _moveOrientation = 0;
- public int MoveOrientation
- {
- get { return _moveOrientation; }
- }
- private Vector3 _lastPos;
- private MoveProcessor _moveProcessor;
- private float _previousTimeSinceTrigger = 0;
- private float _previousSpeed = 0;
- private Vector3 _destPos;
- public FMoveEvent()
- {
- _eventType = SkillActionFrameEventType.FE_Move;
- }
- protected override void OnSetDefaultValues()
- {
- base.OnSetDefaultValues();
- }
- protected override void OnTrigger(float timeSinceTrigger)
- {
- if (_casterTrans != null)
- {
- _lastPos = _casterTrans.position;
- _moveProcessor = new MoveProcessor(_casterTrans);
- if (_moveType == (int)FighterMoveType.Jump)
- {
- _destPos = _casterTrans.position + Vector3.up * _moveDistance;
- }
- else if (_moveType == (int)FighterMoveType.Sprint_Target)
- {
- if (_targetTrans != null)
- _destPos = _targetTrans.position + _targetTrans.forward * _moveDistance;
- }
- else if (_moveType == (int)FighterMoveType.Sprint_Position)
- {
- Vector3 eulerAngle = _casterTrans.rotation.eulerAngles;
- eulerAngle.y += _moveOrientation;
- _casterTrans.rotation = Quaternion.Euler(eulerAngle);
- _destPos = _casterTrans.position + _casterTrans.forward * _moveDistance;
- }
- }
- if (_moveProcessor != null)
- {
- _moveProcessor.Start(_initSpeed,_acceleration, _destPos);
- _previousTimeSinceTrigger = timeSinceTrigger;
- }
- }
- protected override void OnPause()
- {
- base.OnPause();
- }
- protected override void OnResume()
- {
- base.OnResume();
- }
- protected override void OnFinish()
- {
- base.OnFinish();
- }
- protected override void OnStop()
- {
- base.OnStop();
- if(_casterTrans!=null)
- {
- _casterTrans.position = _lastPos;
- }
- }
- protected override void OnUpdateEvent(float timeSinceTrigger)
- {
- float delta = timeSinceTrigger - _previousTimeSinceTrigger;
- _previousTimeSinceTrigger = timeSinceTrigger;
- if(_moveProcessor!=null)
- {
- _moveProcessor.Update(delta);
- }
-
- }
- public override int GetMaxLength()
- {
- return base.GetMaxLength();
- }
- public override string Text
- {
- get { return "移动"; }
- set { }
- }
- public override SecurityElement SaveToXml()
- {
- SecurityElement node = base.SaveToXml();
- SecurityElement paramNode = WriteParamNode("moveType", _moveType.ToString(),"int");
- node.AddChild(paramNode);
- paramNode = WriteParamNode("initSpeed", ((int)(_initSpeed * 100)).ToString(), "int");
- node.AddChild(paramNode);
- paramNode = WriteParamNode("acceleration", ((int)(_acceleration * 100)).ToString(), "int");
- node.AddChild(paramNode);
- paramNode = WriteParamNode("moveDist", ((int)(_moveDistance * 100)).ToString(), "int");
- node.AddChild(paramNode);
- paramNode = WriteParamNode("moveOrientation", _moveOrientation.ToString(), "int");
- node.AddChild(paramNode);
- return node;
- }
- public override void LoadFromXml(SecurityElement eventNode)
- {
- base.LoadFromXml(eventNode);
- _moveType = GetNParam("moveType");
- _initSpeed = GetNParam("initSpeed") * 0.01f;
- _acceleration = GetNParam("acceleration") * 0.01f;
- _moveDistance = GetNParam("moveDist") * 0.01f;
- _moveOrientation = GetNParam("moveOrientation");
- }
- }
- }
|