void LateUpdate()
    {
#if UNITY_EDITOR
        if (EditorApplication.isPlaying == false)
        {
            return;
        }
#endif

        if (ParticleAsset == null || ParticleAsset.IsPlaying == false)
        {
            return;
        }

        if (drawCall == null)
        {
            return;
        }

        ParticleAsset.SetRenderQueue(drawCall.renderQueue);
        PlaybackTime = ParticleAsset.PlaybackTime;

        if (play_type == eUIParticlePlay.RealTimeSinceStartup)
        {
            ParticleAsset.UpdatePlay(Time.realtimeSinceStartup);
        }
    }
Beispiel #2
0
    private WorldParticleDetails SetupParticleSystem()
    {
        var particleDetails = new WorldParticleDetails
        {
            maxParticles = MaxParticles
        };

        var particleRef = new AssetReference(ParticleAsset.ToString());

        if (particleRef.RuntimeKeyIsValid())
        {
            var    loadRequest = particleRef.InstantiateAsync();
            Entity requester   = entityManager.CreateEntity();
            entityManager.AddComponentData(requester, new AsyncRequestWorld
            {
                CentrePoint          = CentrePoint,
                GridSize             = GridSize,
                MaxParticles         = MaxParticles,
                worldParticleDetails = particleDetails,
                particleGO           = loadRequest
            });
        }

        return(particleDetails);
    }
Beispiel #3
0
 void OnDisable()
 {
     if (ParticleAsset != null)
     {
         ParticleAsset.Stop();
     }
 }
    public void Play()
    {
        gameObject.SetActive(true);
        if (IsInit == true)
        {
            if (ParticleAsset != null)
            {
                ParticleAsset.Stop();
                if (play_type == eUIParticlePlay.DeltaTime)
                {
                    ParticleAsset.Play(false, 0);
                }
                else
                {
                    if (ContinueTime == false)
                    {
                        ParticleAsset.Delay = Time.realtimeSinceStartup;
                    }
                    ParticleAsset.Play(true, 0);
                }

                ParticleAsset.SetLightingMax(1f);
                if (IsAutoPlay == true && ContinueTime == true)
                {
                    ParticleAsset.PlaybackTime = PlaybackTime;
                }
                else
                {
                    PlaybackTime = 0f;
                }
            }
            return;
        }

        IsInit = true;

        if (string.IsNullOrEmpty(particle_name))
        {
            return;
        }

        PlaybackTime  = 0f;
        ParticleAsset = GameObject.Instantiate <HFX_ParticleSystem>(AssetManager.GetParticleSystem(particle_name));
        if (ParticleAsset != null)
        {
            ParticleAsset.transform.SetParent(transform, false);
            ParticleAsset.gameObject.SetActive(true);
            if (ContinueTime == false && play_type == eUIParticlePlay.RealTimeSinceStartup)
            {
                ParticleAsset.Delay = Time.realtimeSinceStartup;
            }
            ParticleAsset.Play(play_type == eUIParticlePlay.RealTimeSinceStartup, 0);
            ParticleAsset.SetLightingMax(1f);
        }
        else
        {
            Debug.LogWarningFormat("particle not found : {0}", particle_name);
        }
    }
 override protected void OnDisable()
 {
     base.OnDisable();
     if (ParticleAsset != null)
     {
         ParticleAsset.Stop();
     }
 }
Beispiel #6
0
        public ParticleAssetControl(ParticleAsset asset)
        {
            InitializeComponent();

            Handler = new ParticleAssetControlHandler(asset, this);

            Data.DataContext = asset;
        }
 public void Stop()
 {
     if (IsInit == true)
     {
         if (ParticleAsset != null)
         {
             ParticleAsset.Stop();
         }
         return;
     }
 }
        public void Initialize(ParticleAsset asset)
        {
            ParticleName.Text = asset.AssetName;

            bool isPathValid = asset.EditorPath.IsPathValid();

            FileName.Text = isPathValid ? Path.GetFileName(asset.EditorPath) : asset.EditorPath;

            if (isPathValid)
            {
                byte[] bytes = File.ReadAllBytes(asset.EditorPath);
                PreviewTextBox.Text = Regex.Replace(BitConverter.ToString(bytes).Replace("-", string.Empty), ".{" + (bytes.Length / 2) + "}", "$0\n").TrimEnd('\n');
            }
        }
Beispiel #9
0
    void LateUpdate()
    {
        if (ParticleAsset == null || ParticleAsset.IsPlaying == false)
        {
            return;
        }

        UIPanel panel       = CoreUtility.GetParentComponent <UIPanel>(transform);
        int     renderQueue = panel.startingRenderQueue;

        ParticleAsset.SetRenderQueue(renderQueue + depth);
        playback_time = ParticleAsset.PlaybackTime;

        if (play_type == eUIParticlePlay.RealTimeSinceStartup)
        {
            ParticleAsset.UpdatePlay(Time.realtimeSinceStartup);
        }
    }