protected override void OnPrefabInit() { _instance = this; base.OnPrefabInit(); mistEffect.SetActive(false); mistPool = new ObjectPool(InstantiateMist, 16); }
public static void NormalGravity(FallingWater __instance, ref float __result) { Debug.Log(" === FallingWaterMod INI === "); __result = 1f; Debug.Log(" === FallingWaterMod END === "); }
/// <summary> /// Applied before OnCleanUp runs. /// </summary> internal static void Prefix(FallingWater __instance) { // Destroy the mesh renderer game object FallingWaterMeshRenderer.DestroyInstance(); // Destroy the mesh UnityEngine.Object.Destroy(__instance.mesh); __instance.mesh = null; }
/// <summary> /// Creates a mesh renderer object for falling water. /// </summary> /// <param name="instance">The falling water object to render.</param> internal static void CreateInstance(FallingWater instance) { var game = Game.Instance; if (game == null) { throw new ArgumentNullException(nameof(Game.Instance)); } DestroyInstance(); var go = instance.mesh.CreateMeshRenderer("Falling Water", LayerMask.NameToLayer( "Water")); var t = go.transform; t.SetParent(game.transform); t.SetPositionAndRotation(Vector3.zero, Quaternion.identity); // Set up the mesh with the right material if (go.TryGetComponent(out MeshRenderer renderer)) { renderer.material = instance.material; renderer.SetPropertyBlock(instance.propertyBlock); } Instance = go.AddOrGet <FallingWaterMeshRenderer>(); }
protected override void OnCleanUp() { instance = null; base.OnCleanUp(); }
public static void DestroyInstance() { _instance = null; }
/// <summary> /// Applied after OnSpawn runs. /// </summary> internal static void Postfix(FallingWater __instance) { FallingWaterMeshRenderer.CreateInstance(__instance); }