예제 #1
0
    public void Update()
    {
        if (test)
        {
            test = false;

            ResNode itemNode = AssetBundleManager.GetAssets(AssetType.Asset_Prefab, "Effect/Scene/UI/StaticState/Baoshi/" + szModelPath);
            if (itemNode == null)
            {
                return;
            }

            Effect.EffectNode itemObject = itemNode.InstanceMainRes <Effect.EffectNode>();
            if (itemObject == null)
            {
                return;
            }

            //itemObject.StopEffect();
            itemObject.PlayEffect(false, -1, itemObject.SrcObj, itemObject.DstObj);
            itemObject.transform.SetParent(parent, false);
            itemObject.transform.localPosition = new UnityEngine.Vector3(0f, 0f, 0f);
        }
        if (testDelete)
        {
            testDelete = false;
            SceneEffectManager.Instance.DestroySceneEffect(ref deleteParam);
        }
    }
예제 #2
0
    private static void UpdateZoneVisible()
    {
        if (U3D_Render.EntityView.isNullOrEmpty(EntityFactory.MainHeroView) || !isHaveData)
        {
            return;
        }

        Vector3 CamerPos = EntityFactory.MainHeroView.transform.position;
        Vector3 dir      = (CamerPos - SafeZone.currPos).normalized;
        Vector3 SphrePos = SafeZone.currPos + dir * SafeZone.currRadius;

        float dis = GameUtil.GetSqrDistanceWithOutY(CamerPos, SphrePos);

        if (dis < showZoneDis * showZoneDis)
        {
            SafeZoneEffectInstance.PlayEffect();
        }
        else
        {
            SafeZoneEffectInstance.StopEffect();
        }
    }
 public static void EnableDeadEffect()
 {
     if (DeadEffectRes == null)
     {
         DeadEffectRes = AssetBundleManager.GetAssets(AssetType.Asset_Prefab, "CommonPrefab/Effect/selectEffect/DeadEffect");
         if (null != DeadEffectRes)
         {
             m_DeadEffect = DeadEffectRes.InstanceMainRes <Effect.EffectNode>();
             m_DeadEffect.isStaticEffect = false;
             m_DeadEffect.PlayOnAwake    = false;
             m_DeadEffect.Init();
             GameObject.DontDestroyOnLoad(m_DeadEffect.gameObject);
         }
     }
     if (m_DeadEffect)
     {
         m_DeadEffect.PlayEffect(false, -1, null, null);
     }
 }
    public void ApplyPlayData(EffectResHandlePlayData data)
    {
        if (null == data)
        {
            return;
        }

        if (!Valid)
        {
            return;
        }

        if (isCached)
        {
            data.ClearDirtyData();
            return;
        }
        if (!m_effectNode)
        {
            return;
        }
        if (data.ParentDirty)
        {
            m_effectPrefab.SetActive(false);
            data.parent.gameObject.name = m_effectPrefab.name + "-Agent";
            m_effectPrefabTransform.SetParent(data.parent);
            m_effectPrefabTransform.localPosition = Vector3.zero;
            m_effectPrefabTransform.localRotation = Quaternion.identity;
            m_effectPrefab.SetActive(true);
        }
        //暂不支持
        //if (data.SpeedDirty)
        //{
        //    m_effectNode.SetParticleSpeed(data.Speed);
        //}
        if (data.SizeScaleDirty)
        {
            m_effectNode.SetScale(data.SizeScale);
        }

        if (data.effectColliderLayerDirty)
        {
            EffectUtily.SetEffectColliderLayer(data.effectColliderLayer, m_effectNode.effectColliders);
        }
        if (data.broadcastfuncNameDirty)
        {
            m_effectPrefab.BroadcastMessage(data.broadcastfuncName, SendMessageOptions.DontRequireReceiver);
        }
        if (data.AddhitEventDirty)
        {
            m_effectNode.hitEvent += data.AddhitEvent;
        }
        if (data.ReducehitEventDirty)
        {
            m_effectNode.hitEvent -= data.ReducehitEvent;
        }

        if (data.AddAttackCollisionHandleDirty)
        {
            if (m_AttackGroup)
            {
                m_AttackGroup.collisionEvent += data.AddAttackCollisionHandle;
            }
        }

        if (data.ReduceAttackCollisionHandleDirty)
        {
            if (m_AttackGroup)
            {
                m_AttackGroup.collisionEvent -= data.ReduceAttackCollisionHandle;
            }
        }
        if (data.Attack_nFeedBackIDDirty)
        {
            if (m_AttackGroup)
            {
                m_AttackGroup.nFeedBackID = data.Attack_nFeedBackID;
            }
        }
        if (data.Attack_nAttackEntityIDDirty)
        {
            if (m_AttackGroup)
            {
                m_AttackGroup.nAttackEntityID = data.Attack_nAttackEntityID;
            }
        }
        if (data.Attack_bEnableCollisionDirty)
        {
            if (m_AttackGroup)
            {
                m_AttackGroup.bEnableCollision = data.Attack_bEnableCollision;
            }
        }

        if (data.Attack_eventHandlerCountDirty)
        {
            if (m_AttackGroup)
            {
                m_AttackGroup.eventHandlerCount = data.Attack_eventHandlerCount;
            }
        }



        if (data.bPlayDirty || data.isEnemyDirty || data.entityIDDirty || data.SrcTransformDirty || data.DstTransformDirty || data.playMaskDirty || data.bRePlayDirty)
        {
            if (data.bRePlay)
            {
                m_effectNode.StopEffect();
            }

            if (data.bPlay || data.bRePlay)
            {
                m_effectNode.PlayEffect(data.isEnemy, data.entityID, data.SrcTransform, data.DstTransform, data.playMask);
            }
            else
            {
                m_effectNode.StopEffect();
            }
        }
        data.ClearDirtyData();
    }