| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- #if UNITY_EDITOR
- using System;
- using UnityEditor;
- using UnityEditor.Build;
- using UnityEditor.Build.Reporting;
- using UnityEngine;
- using UnityEngine.Networking;
- using com.zibra.common.SDFObjects;
- using com.zibra.liquid.Solver;
- using com.zibra.liquid.Bridge;
- using com.zibra.liquid.Manipulators;
- using com.zibra.common.Utilities;
- using com.zibra.common.Editor.SDFObjects;
- using com.zibra.common;
- namespace com.zibra.liquid.Analytics
- {
- [InitializeOnLoad]
- internal static class ZibraLiquidAnalytics
- {
- public static void TrackBakedStateSaved()
- {
- EditorPrefs.SetBool("ZibraEffectsTracking_Liquids_BakedStateSaved", true);
- }
- public static void TrackSimulationInitialization(ZibraLiquid liquid)
- {
- EditorPrefs.SetBool("ZibraEffectsTracking_Liquids_Used", true);
- if (liquid.InitialState == ZibraLiquid.InitialStateType.BakedLiquidState &&
- liquid.BakedInitialStateAsset != null)
- {
- EditorPrefs.SetBool("ZibraEffectsTracking_Liquids_BakedStateUsed", true);
- }
- var currentRendererMode = liquid.CurrentRenderingMode;
- switch (currentRendererMode)
- {
- case ZibraLiquid.RenderingMode.MeshRender:
- EditorPrefs.SetBool("ZibraEffectsTracking_Liquids_MeshRendererUsed", true);
- break;
- #if !ZIBRA_EFFECTS_OTP_VERSION
- case ZibraLiquid.RenderingMode.UnityRender:
- EditorPrefs.SetBool("ZibraEffectsTracking_Liquids_UnityRendererUsed", true);
- break;
- #endif
- }
- if (liquid.EnableDownscale)
- {
- EditorPrefs.SetBool("ZibraEffectsTracking_Liquids_RenderDownscaleUsed", true);
- }
- int currentNodeCount = liquid.GridNodeCount;
- int previousMaxNodeCount = EditorPrefs.GetInt("ZibraEffectsTracking_Liquids_MaxNodeCount", 0);
- int previousMinNodeCount = EditorPrefs.GetInt("ZibraEffectsTracking_Liquids_MinNodeCount", int.MaxValue);
- EditorPrefs.SetInt("ZibraEffectsTracking_Liquids_MaxNodeCount",
- Math.Max(currentNodeCount, previousMaxNodeCount));
- EditorPrefs.SetInt("ZibraEffectsTracking_Liquids_MinNodeCount",
- Math.Min(currentNodeCount, previousMinNodeCount));
- int currentMaxNumParticles = liquid.MaxNumParticles;
- int previousMaxMaxNumParticles = EditorPrefs.GetInt("ZibraEffectsTracking_Liquids_MaxMaxParticleCount", 0);
- int previousMinMaxNumParticles =
- EditorPrefs.GetInt("ZibraEffectsTracking_Liquids_MinMaxParticleCount", int.MaxValue);
- EditorPrefs.SetInt("ZibraEffectsTracking_Liquids_MaxMaxParticleCount",
- Math.Max(currentMaxNumParticles, previousMaxMaxNumParticles));
- EditorPrefs.SetInt("ZibraEffectsTracking_Liquids_MinMaxParticleCount",
- Math.Min(currentMaxNumParticles, previousMinMaxNumParticles));
- int currentGridResolution = liquid.GridResolution;
- int previousMaxGridResolution = EditorPrefs.GetInt("ZibraEffectsTracking_Liquids_MaxGridResolution", 0);
- int previousMinGridResolution =
- EditorPrefs.GetInt("ZibraEffectsTracking_Liquids_MinGridResolution", int.MaxValue);
- EditorPrefs.SetInt("ZibraEffectsTracking_Liquids_MaxGridResolution",
- Math.Max(currentGridResolution, previousMaxGridResolution));
- EditorPrefs.SetInt("ZibraEffectsTracking_Liquids_MinGridResolution",
- Math.Min(currentGridResolution, previousMinGridResolution));
- foreach (var item in liquid.GetManipulatorList())
- {
- var manipulatorType = item.GetManipulatorType();
- var sdf = item.GetComponent<SDFObject>();
- if (sdf == null)
- continue;
- switch (manipulatorType)
- {
- case Manipulator.ManipulatorType.Emitter:
- case Manipulator.ManipulatorType.Void:
- case Manipulator.ManipulatorType.ForceField:
- case Manipulator.ManipulatorType.Detector:
- case Manipulator.ManipulatorType.SpeciesModifier:
- TrackManipulatorSDF(sdf, manipulatorType.ToString());
- break;
- }
- }
- foreach (var item in liquid.GetColliderList())
- {
- var sdf = item.GetComponent<SDFObject>();
- if (sdf == null)
- continue;
- TrackManipulatorSDF(sdf, "Collider");
- }
- }
- private static void TrackManipulatorSDF(SDFObject sdf, string manipulatorType)
- {
- if (sdf is AnalyticSDF)
- {
- EditorPrefs.SetBool($"ZibraEffectsTracking_Liquids_Manipulator{manipulatorType}AnalyticSDF", true);
- }
- else if (sdf is NeuralSDF)
- {
- EditorPrefs.SetBool($"ZibraEffectsTracking_Liquids_Manipulator{manipulatorType}NeuralSDF", true);
- }
- else if (sdf is SkinnedMeshSDF)
- {
- EditorPrefs.SetBool($"ZibraEffectsTracking_Liquids_Manipulator{manipulatorType}SkinnedMeshSDF", true);
- }
- }
- }
- }
- #endif
|