コード例 #1
0
        protected void GeneralStopImpact(ImpactLogicInfo logicInfo)
        {
            if (IsLogicDead(logicInfo.Target))
            {
                SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.Stiffness);
                SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.HitFly);
                SetGfxStateFlag(logicInfo.Target, Operate_Type.OT_RemoveBit, GfxCharacterState_Type.GetUp);
            }
            else
            {
                ClearGfxStateFlag(logicInfo.Target);
            }
            logicInfo.CustomDatas.Clear();
            //foreach=>for
            for (int i = 0; i < logicInfo.EffectsDelWithImpact.Count; ++i)
            {
                GameObject Obj = logicInfo.EffectsDelWithImpact[i];
                ResourceSystem.RecycleObject(Obj);
            }

            //foreach(GameObject obj in logicInfo.EffectsDelWithImpact){
            //  ResourceSystem.RecycleObject(obj);
            //}
            ResetLayer(logicInfo.Target, logicInfo);
            LogicSystem.NotifyGfxAnimationFinish(logicInfo.Target, false);
            LogicSystem.NotifyGfxMoveControlFinish(logicInfo.Target, logicInfo.ImpactId, false);
            LogicSystem.NotifyGfxStopImpact(logicInfo.Sender, logicInfo.ImpactId, logicInfo.Target);
        }
コード例 #2
0
 public void RecylceAsset(GameEntity entity)
 {
     if (entity.hasView)
     {
         UnityView view = entity.view.Value as UnityView;
         view.gameObject.Unlink();
         ResourceSystem.RecycleObject(view.gameObject);
     }
 }
コード例 #3
0
    private void OnHitTarget(GameObject obj)
    {
        ImpactInfo impact = m_ImpactInfo.Clone() as ImpactInfo;

        impact.Attacker   = m_Sender;
        impact.m_Velocity = this.transform.forward * impact.m_Velocity.z;
        ImpactSystem.Instance.SendImpact(m_Sender, obj, impact.Clone() as ImpactInfo);
        ResourceSystem.RecycleObject(gameObject);
    }
コード例 #4
0
 public override void Reset()
 {
     m_IsInited = false;
     SetBlackPercent(0);
     Camera.main.cullingMask = m_OldMask;
     Camera.main.clearFlags  = UnityEngine.CameraClearFlags.Skybox;
     ResourceSystem.RecycleObject(m_BlackCameraObj);
     m_BlackCameraObj = null;
     m_BlackCamera    = null;
 }
コード例 #5
0
        public override void StopImpact(ImpactLogicInfo logicInfo)
        {
            for (int i = 0; i < logicInfo.EffectsDelWithImpact.Count; i++)
            {
                ResourceSystem.RecycleObject(logicInfo.EffectsDelWithImpact[i]);
            }

            /*
             * foreach(GameObject obj in logicInfo.EffectsDelWithImpact){
             * ResourceSystem.RecycleObject(obj);
             * }*/
            logicInfo.IsActive = false;
        }
コード例 #6
0
        public void StopEffects()
        {
            for (int i = 0; i < m_EffectObject.Count; i++)
            {
                ResourceSystem.RecycleObject(m_EffectObject[i]);
            }

            /*
             * foreach (GameObject effect in m_EffectObject) {
             * ResourceSystem.RecycleObject(effect);
             * }*/
            m_EffectObject.Clear();
        }
コード例 #7
0
        public void RemoveHudHead(GameEntity entity)
        {
            UnityView view = entity.view.Value as UnityView;

            if (null != view)
            {
                HudInfo hudInfo;
                if (m_HudHeadInfos.TryGetValue(view.gameObject.GetInstanceID(), out hudInfo))
                {
                    ResourceSystem.RecycleObject(hudInfo.Obj);
                    m_HudHeadInfos.Remove(view.gameObject.GetInstanceID());
                }
            }
        }
コード例 #8
0
    protected void GeneralStopSkill()
    {
        m_IsActive = false;
        m_AnimationPlayer.StopAllAnim();
        SharedGameObjectInfo info = LogicSystem.GetSharedGameObjectInfo(gameObject);

        foreach (GameObject obj in m_EffectList)
        {
            ResourceSystem.RecycleObject(obj);
        }
        m_EffectList.Clear();
        if (null != info)
        {
            LogicSystem.PublishLogicEvent("ge_set_ai_enable", "ai", info.m_LogicObjectId, true);
        }
        LogicSystem.NotifyGfxMoveControlFinish(gameObject);
        LogicSystem.NotifyGfxAnimationFinish(gameObject);
    }
コード例 #9
0
 // Update is called once per frame
 void Update()
 {
     if (!m_HitCollider)
     {
         this.transform.position += this.transform.forward * m_ThrowSpeed * Time.deltaTime;
     }
     else
     {
         m_AfterHitColliderTime -= Time.deltaTime;
         if (m_AfterHitColliderTime > 0.0f)
         {
             this.transform.position += this.transform.forward * m_ThrowSpeed * Time.deltaTime;
         }
     }
     if (Time.time > m_BornTime + m_MaxLiveTime)
     {
         ResourceSystem.RecycleObject(gameObject);
     }
 }
コード例 #10
0
 public override void Tick(long delta_ns)
 {
     if (m_IsOver)
     {
         return;
     }
     m_CurTimeNs += delta_ns;
     if (m_HoldTime < GetCurTime())
     {
         long  pass_time = GetCurTime() - m_HoldTime;
         float t         = pass_time / (m_FadeOutTime * 1.0f);
         t = t > 1 ? 1 : t;
         float new_alpha = UnityEngine.Mathf.Lerp(m_StartAlpha, 0, t);
         SetGameObjectAlpha(m_ShadowObject, new_alpha);
     }
     if (m_HoldTime + m_FadeOutTime < GetCurTime())
     {
         ResourceSystem.RecycleObject(m_ShadowObject);
         m_IsOver = true;
     }
 }
コード例 #11
0
        public void Tick(ICameraService cameraService)
        {
            float time  = Time.time;
            int   count = m_Damages.Count;

            for (int i = count - 1; i >= 0; i--)
            {
                DamageInfo textInfo = m_Damages[i];

                if (null == textInfo.Obj)
                {
                    m_Damages.Remove(textInfo);
                    continue;
                }

                if (textInfo.DeleteTime > 0 && time > textInfo.DeleteTime)
                {
                    ResourceSystem.RecycleObject(textInfo.Obj);
                    m_Damages.Remove(textInfo);
                }

                bool canMove = Time.time > textInfo.Delay;

                int mov = ScreenPosition(textInfo.Position, cameraService);
                if (canMove)
                {
                    textInfo.YQuickness += Time.deltaTime;
                    float floatSpeed = textInfo.FloatSpeed;
                    switch (textInfo.Movement)
                    {
                    case Guidance.Up:
                        textInfo.YCounterVail += (((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier) * textInfo.YQuickness;
                        break;

                    case Guidance.Down:
                        textInfo.YCounterVail -= (((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier) * textInfo.YQuickness;
                        break;

                    case Guidance.Left:
                        textInfo.XCounterVail -= ((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier;
                        break;

                    case Guidance.Right:
                        textInfo.XCounterVail += ((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier;
                        break;

                    case Guidance.RightUp:
                        textInfo.YCounterVail += (((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier) * textInfo.YQuickness;
                        textInfo.XCounterVail += ((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier;
                        break;

                    case Guidance.RightDown:
                        textInfo.YCounterVail -= (((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier) * textInfo.YQuickness;
                        textInfo.XCounterVail += ((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier;
                        break;

                    case Guidance.LeftUp:
                        textInfo.YCounterVail += (((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier) * textInfo.YQuickness;
                        textInfo.XCounterVail -= ((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier;
                        break;

                    case Guidance.LeftDown:
                        textInfo.YCounterVail -= (((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier) * textInfo.YQuickness;
                        textInfo.XCounterVail -= ((Time.deltaTime * floatSpeed) * mov) * m_FactorMultiplier;
                        break;
                    }
                }

                Vector2 viewPosition  = cameraService.WorldToViewportPoint(textInfo.Position);
                Vector2 finalPosition = new Vector2(viewPosition.x * 0.5f + textInfo.XCounterVail, -viewPosition.y - textInfo.YCounterVail);

                textInfo.SelfTransform.anchorMax        = viewPosition;
                textInfo.SelfTransform.anchorMin        = viewPosition;
                textInfo.SelfTransform.anchoredPosition = finalPosition;
            }
            foreach (var pair in m_HudHeadInfos)
            {
                int     id      = pair.Key;
                HudInfo hudInfo = pair.Value;

                Vector2 screenPosition = cameraService.WorldToViewportPoint(hudInfo.Owner.position + Vector3.up * 2);

                hudInfo.SelfTransform.anchorMax        = screenPosition;
                hudInfo.SelfTransform.anchorMin        = screenPosition;
                hudInfo.SelfTransform.anchoredPosition = new Vector2(screenPosition.x * 0.5f, -screenPosition.y);
            }
        }