private void resetBackEffect() { this.timeSprite.SetInteger("status", 0); // Done this._glichEffect.scanLineJitter.value = 0.03f; this._glichEffect.verticalJump.value = 0f; this._rewindTimer = null; }
public static util_timer Create(int reps, float delay, Action func, string uniqueName = "") { if (String.IsNullOrEmpty(uniqueName)) { uniqueName = MxTimer.ToString(); MxTimer++; } var t = new util_timer { Iterations = reps, Delay = delay, Func = func, UniqueName = uniqueName }; // Check if timer already exists if (GetTimers.ContainsKey(uniqueName)) if (GetTimers[uniqueName] != null) t = GetTimers[uniqueName]; t.Start(); return t; }
private void setTimeStatus(bool running) { if (this.timeSprite == null || this._hasWon) { return; } if (!running) { this._glichEffect.scanLineJitter.value = 0.4f; this._glichEffect.verticalJump.value = 0.03f; this._rewindTimer = util_timer.Simple(0.5f, this.resetBackEffect); } this._glichEffect.enabled.overrideState = !running; this.timeSprite.SetInteger("status", running ? 1 : 2); this.setSkullSprite(false); }
/* ************* * LOGIC * ===============*/ public void onDataRecieved(network_data msg) { if (msg == null || msg.header != "active") { return; } bool enabled = msg.data == 1; if (enabled && openTime > 0) { if (this._timer != null) { this._timer.Stop(); } this._timer = util_timer.Simple(openTime, () => { this._enabled = false; }); } this._enabled = enabled; }
public void GenerateLiquid(float Left, float Width, float Top, float Bottom) { int edgecount = liquidVertx; int nodecount = edgecount + 1; // Create Body // lineRender = GetComponent <LineRenderer>(); Material mat = new Material(Shader.Find("Liquid_line_shader")); lineRender.sharedMaterial = mat; if (liquidType == LiquidType.LIQUID_WATER) { mat.SetColor("_color", new Color(0.97f, 0.97f, 0.97f)); } else if (liquidType == LiquidType.LIQUID_LAVA) { mat.SetColor("_color", new Color(0.69f, 0.27f, 0)); } else if (liquidType == LiquidType.LIQUID_DONUT) { mat.SetColor("_color", new Color(0.69f, 0f, 0.28f)); } lineRender.sortingLayerName = "PlayArea"; lineRender.sortingOrder = 40; lineRender.useWorldSpace = true; lineRender.receiveShadows = false; lineRender.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; lineRender.positionCount = nodecount; lineRender.startWidth = liquidLineHeight; lineRender.endWidth = liquidLineHeight; // Create the nodes // xpositions = new float[nodecount]; ypositions = new float[nodecount]; velocities = new float[nodecount]; accelerations = new float[nodecount]; meshBottomobjects = new GameObject[edgecount]; meshesBottom = new Mesh[edgecount]; meshMiddleobjects = new GameObject[edgecount]; meshesMiddle = new Mesh[edgecount]; meshTopobjects = new GameObject[edgecount]; meshesTop = new Mesh[edgecount]; baseheight = Top; bottom = Bottom; #region Generate Line Render for (int i = 0; i < nodecount; i++) { ypositions[i] = Top; xpositions[i] = Left + Width * i / edgecount; accelerations[i] = 0; velocities[i] = 0; lineRender.SetPosition(i, new Vector3(xpositions[i], ypositions[i], z - 1f)); } #endregion #region Create Bottom Edges Vector3 pos = this.transform.position; for (int i = 0; i < edgecount; i++) { meshesBottom[i] = new Mesh(); meshesTop[i] = new Mesh(); meshesMiddle[i] = new Mesh(); Vector3[] VerticesBottom = new Vector3[4]; VerticesBottom[0] = new Vector3(xpositions[i], ypositions[i], z); VerticesBottom[1] = new Vector3(xpositions[i + 1], ypositions[i + 1], z); VerticesBottom[2] = new Vector3(xpositions[i], bottom, z); VerticesBottom[3] = new Vector3(xpositions[i + 1], bottom, z); Vector3[] VerticesTop = new Vector3[4]; VerticesTop[0] = new Vector3(xpositions[i], ypositions[i] + 0.25f, z); VerticesTop[1] = new Vector3(xpositions[i + 1], ypositions[i] + 0.25f, z); VerticesTop[2] = new Vector3(xpositions[i], ypositions[i], z); VerticesTop[3] = new Vector3(xpositions[i + 1], ypositions[i], z); Vector3[] VerticesMiddle = new Vector3[4]; VerticesMiddle[0] = new Vector3(xpositions[i], ypositions[i] + 0.5f, z + 0.5f); VerticesMiddle[1] = new Vector3(xpositions[i + 1], ypositions[i] + 0.5f, z + 0.5f); VerticesMiddle[2] = new Vector3(xpositions[i], ypositions[i] + 0.25f, z + 0.5f); VerticesMiddle[3] = new Vector3(xpositions[i + 1], ypositions[i] + 0.25f, z + 0.5f); Vector2[] UVs = new Vector2[4]; UVs[0] = new Vector2(0, 1); UVs[1] = new Vector2(1, 1); UVs[2] = new Vector2(0, 0); UVs[3] = new Vector2(1, 0); int[] tris = new int[6] { 0, 1, 3, 3, 2, 0 }; meshesBottom[i].vertices = VerticesBottom; meshesBottom[i].uv = UVs; meshesBottom[i].triangles = tris; meshesTop[i].vertices = VerticesTop; meshesTop[i].uv = UVs; meshesTop[i].triangles = tris; meshesMiddle[i].vertices = VerticesMiddle; meshesMiddle[i].uv = UVs; meshesMiddle[i].triangles = tris; #region Setup Bottom meshBottomobjects[i] = new GameObject("liquidMesh_BOTTOM"); MeshRenderer renderBottom = meshBottomobjects[i].AddComponent <MeshRenderer>(); renderBottom.material = liquidMaterial; renderBottom.sortingLayerName = "PlayArea"; renderBottom.sortingOrder = 40; renderBottom.receiveShadows = false; renderBottom.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; meshBottomobjects[i].AddComponent <MeshFilter>().mesh = meshesBottom[i]; logic_liquid_collider collider = meshBottomobjects[i].AddComponent <logic_liquid_collider>(); collider._controller = this; collider.indx = i; meshBottomobjects[i].transform.parent = transform; #endregion #region Setup Top meshTopobjects[i] = new GameObject("liquidMesh_TOP"); MeshRenderer renderTop = meshTopobjects[i].AddComponent <MeshRenderer>(); renderTop.material = liquidTopMaterial; renderTop.sortingLayerName = "PlayArea"; renderTop.sortingOrder = 40; renderTop.receiveShadows = false; renderTop.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; meshTopobjects[i].AddComponent <MeshFilter>().mesh = meshesTop[i]; meshTopobjects[i].transform.parent = transform; #endregion #region Setup Middle meshMiddleobjects[i] = new GameObject("liquidMesh_MID"); MeshRenderer renderMiddle = meshMiddleobjects[i].AddComponent <MeshRenderer>(); renderMiddle.material = liquidMiddleMaterial; renderMiddle.sortingLayerName = "PlayArea"; renderMiddle.sortingOrder = 10; renderMiddle.receiveShadows = false; renderMiddle.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; meshMiddleobjects[i].AddComponent <MeshFilter>().mesh = meshesMiddle[i]; meshMiddleobjects[i].transform.parent = transform; #endregion } #endregion // Create the timer if (liquidType == LiquidType.LIQUID_LAVA) { splashTimer = util_timer.Create(0, 2f, () => { int indx = Random.Range(0, velocities.Length - 1); Vector3 poss = new Vector3(xpositions[indx], transform.position.y, transform.position.z); Splash(indx, poss, Random.Range(0.01f, forceMultiply)); }); } else if (liquidType == LiquidType.LIQUID_DONUT) { splashTimer = util_timer.Create(0, 5f, () => { int indx = Random.Range(0, velocities.Length - 1); Vector3 poss = new Vector3(xpositions[indx], transform.position.y, transform.position.z); Splash(indx, poss, Random.Range(0.01f, forceMultiply)); }); } }