Exemplo n.º 1
0
 private void RemoveRunner()
 {
     if (_fireRunner != null)
     {
         _fireRunner.Dispose();
         _fireRunner = null;
     }
     if (_fighter != null && _fighter.collideBody != null)
     {
         lock (_fighter.collideBody) {
             _fighter.collideBody.SetDirty();
         }
         _fighter = null;
     }
 }
Exemplo n.º 2
0
            protected override void OnEnter()
            {
                _status = CompStatus.COMPLETE;
                object obj = machine.GetRuntimeData <object>(CpxState.TEMP_DATA);

                if (obj == null)
                {
                    GlobalLogger.LogError("no setting data retrieved");
                    return;
                }
                _fighter = entity as IFightableEntity;
                if (_fighter == null)
                {
                    return;
                }
                _fx = GetFireFx(obj);
                if (_fx == null)
                {
                    return;
                }
                LuaTable tb = obj as LuaTable;
                Vector3  pos;

                if (tb != null && tb.TryGet("position", out pos))
                {
                    model.MoveTo(pos);
                }
                float orient;

                if (tb != null && tb.TryGet("orient", out orient))
                {
                    Debug.Log(string.Format("model.orient ={0}, data.orient ={1}", model.orientation, orient));
                    model.orientation = orient;
                }
                _status     = CompStatus.RUNING;
                _fireRunner = new FxFireRunner(_fighter, _fx)
                {
                    targetInfos = new FireFxInfo[0],
                    targetPos   = GetTargetPosition(tb)
                };
                _fireRunner.completeEvent.AddListener(OnComplete);
                try {
                    _fireRunner.Start();
                } catch (Exception e) {
                    GlobalLogger.LogError(e);
                    _status = CompStatus.COMPLETE;
                }
            }