public void SetQuality(EffectRuntimeQuality quality)
    {
        if (m_quality == quality)
        {
            return;
        }

        for (int i = 0; i < optionals.Length; i++)
        {
            optionals[i].SetActive(quality == EffectRuntimeQuality.High);
        }
    }
Ejemplo n.º 2
0
    private void StartInternal(System.Action <EffectObject> onLoad, EffectRuntimeQuality quality)
    {
        onLoadCallback           = onLoad;
        applyOnRenderersCallback = null;
        runtimeQuality           = quality;
        if (qualitySwitcher != null)
        {
            qualitySwitcher.SetQuality(runtimeQuality);
        }

        ResetState();

        UpdatePosition();
        UpdateScale();
        if (config.InitFollowRotation)
        {
            UpdateRotation();
        }
    }
Ejemplo n.º 3
0
    /// <summary>
    /// 在指定位置播放特效
    /// </summary>
    /// <param name="id"></param>
    /// <param name="position"></param>
    /// <param name="rotation"></param>
    /// <returns></returns>
    public static EffectObject Play(int id, Vector3 position, Quaternion rotation, System.Action <EffectObject> onLoad, EffectRuntimeQuality quality = EffectRuntimeQuality.High)
    {
        EffectObject effectObj = FetchEffectObject(id);

        if (effectObj == null)
        {
            return(null);
        }

        if (updating)
        {
            pending.Add(effectObj);
        }
        else
        {
            activeEffects.AddLast(effectObj);
        }

        effectObj.Start(position, rotation, onLoad, quality);

        return(effectObj);
    }
Ejemplo n.º 4
0
 public static EffectObject Play(int id, Transform target, EffectRuntimeQuality quality = EffectRuntimeQuality.High)
 {
     return(Play(id, target, null, quality));
 }
Ejemplo n.º 5
0
    /// <summary>
    /// 在指定Transform上播放特效
    /// </summary>
    /// <param name="id"></param>
    /// <param name="target"></param>
    /// <returns></returns>
    public static EffectObject Play(int id, Transform target, System.Action <EffectObject> onLoad, EffectRuntimeQuality quality = EffectRuntimeQuality.High)
    {
        EffectObject effectObj = FetchEffectObject(id);

        if (effectObj == null)
        {
            return(null);
        }

        if (updating)
        {
            pending.Add(effectObj);
        }
        else
        {
            activeEffects.AddLast(effectObj);
        }

        effectObj.Start(target, onLoad, quality);

        return(effectObj);
    }
Ejemplo n.º 6
0
 public static EffectObject Play(int id, Vector3 position, Quaternion rotation, EffectRuntimeQuality quality = EffectRuntimeQuality.High)
 {
     return(Play(id, position, rotation, null, quality));
 }
Ejemplo n.º 7
0
 public void Start(Vector3 position, Quaternion rotation, System.Action <EffectObject> onLoad, EffectRuntimeQuality quality)
 {
     target.Clear();
     target.SetPosition(position, rotation);
     StartInternal(onLoad, quality);
 }
Ejemplo n.º 8
0
 public void Start(Transform trans, System.Action <EffectObject> onLoad, EffectRuntimeQuality quality)
 {
     target.Clear();
     target.SetTransform(trans, config.BindPoint);
     StartInternal(onLoad, quality);
 }