// Update is called once per frame void Update() { if (!dragMode && !lavaSwitch) { BeginLevel(false, false); lavaSwitch = true; settingsUI.transform.Find("Same Layout Button").gameObject.SetActive(true); } if (!objectiveList[currentObjective].IsActive) { if (currentObjective < objectiveList.Length - 1) { lavaArea.size = new Vector2(lavaArea.size.x, lavaArea.size.y * lavaSizeMultiplier); lavaArea.AdjustComponentSizes(); lavaArea.RecomputeMesh(); currentObjective++; objectiveList[currentObjective].IsActive = true; for (int i = 0; i < targetObjects.Length; i++) { targetObjects[i].SendMessage("OnLavaRise", lava.transform.position.y + (lavaArea.size.y / 2) * lava.transform.localScale.y, SendMessageOptions.DontRequireReceiver); } } else { EndLevel(); } } }
public void BeginLevel(bool restart, bool toDragMode) { settingsUI.SetActive(false); hudUI.SetActive(true); deathUI.SetActive(false); lava.transform.position = floor.transform.position; this.lavaArea = lava.GetComponent <WaterArea>(); lavaArea.size = new Vector2(floor.transform.localScale.x, floor.transform.localScale.y); lava.SetActive(true); lavaLevel.SetActive(false); lavaArea.AdjustComponentSizes(); lavaArea.RecomputeMesh(); floor.SetActive(false); for (int i = 0; i < targetObjects.Length; i++) { if (restart || (targetObjects[i].GetComponent <Furniture>() != null && targetObjects[i].GetComponent <Furniture>().destroyedOnLanding)) { targetObjects[i].SendMessage("OnLavaReset", null, SendMessageOptions.DontRequireReceiver); } targetObjects[i].SetActive(true); } if (toDragMode) { deathUI.SetActive(false); settingsUI.SetActive(false); hudUI.SetActive(true); floor.SetActive(true); lava.SetActive(false); dragUI.SetActive(true); settingsUI.transform.Find("Same Layout Button").gameObject.SetActive(false); playerScript.canMove = false; lavaLevel.SetActive(true); lavaLevel.transform.position = new Vector3(lavaLevel.transform.position.x, lava.transform.position.y + (lavaArea.size.y * lavaSizeMultiplier / 2) * lava.transform.localScale.y, lavaLevel.transform.position.z); lavaSwitch = false; SetDragMode(); } objectiveList[currentObjective].IsActive = false; currentObjective = 0; objectiveList[currentObjective].IsActive = true; sourceMusic.clip = music; sourceMusic.loop = true; sourceMusic.Play(); }
public override void OnInspectorGUI() { serializedObject.Update(); EditorGUI.BeginChangeCheck(); m_WaterArea.pointPerUnits = EditorGUILayout.DelayedIntField("Point per unit", m_WaterArea.pointPerUnits); EditorGUI.BeginChangeCheck(); Vector2 newOffsetValue = EditorGUILayout.Vector2Field("Offset", m_OffsetProp.vector2Value); if (newOffsetValue.x > 0f && newOffsetValue.y > 0f) { m_OffsetProp.vector2Value = newOffsetValue; } Vector2 newSizeValue = EditorGUILayout.Vector2Field("Size", m_SizeProp.vector2Value); if (newSizeValue.x > 0f && newSizeValue.y > 0f) { m_SizeProp.vector2Value = newSizeValue; } if (EditorGUI.EndChangeCheck()) { serializedObject.ApplyModifiedProperties(); m_WaterArea.AdjustComponentSizes(); m_WaterArea.RecomputeMesh(); EditorUtility.SetDirty(target); } m_WaterArea.dampening = EditorGUILayout.FloatField("Dampening", m_WaterArea.dampening); m_WaterArea.tension = EditorGUILayout.FloatField("Tension", m_WaterArea.tension); m_WaterArea.neighbourTransfer = EditorGUILayout.FloatField("Neighbour Transfer", m_WaterArea.neighbourTransfer); if (EditorGUI.EndChangeCheck() || (m_WaterArea.boxCollider2D != null && (m_PrevSize != m_WaterArea.boxCollider2D.size || m_PrevOffset != m_WaterArea.boxCollider2D.offset))) { m_WaterArea.RecomputeMesh(); EditorUtility.SetDirty(target); } EditorGUI.BeginChangeCheck(); int sortLayer = EditorGUILayout.Popup("Sorting Layer", m_CurrentLayer, m_SortingLayers); if (sortLayer != m_CurrentLayer) { m_WaterArea.sortingLayerID = SortingLayer.NameToID(m_SortingLayers[sortLayer]); m_CurrentLayer = sortLayer; } EditorGUILayout.PropertyField(m_SortingLayerOrderProp); if (EditorGUI.EndChangeCheck()) { m_WaterArea.SetSortingLayer(); EditorUtility.SetDirty(target); } EditorGUILayout.PropertyField(m_SplashPlayerPrefabProp); serializedObject.ApplyModifiedProperties(); m_PrevSize = m_WaterArea.boxCollider2D.size; m_PrevOffset = m_WaterArea.boxCollider2D.offset; }