// Update is called once per frame void Update() { // cast from gun to ground if (Physics.Raycast(transform.position, transform.TransformDirection(Vector3.forward), out hit, 15, layerMask)) { // if player decides to shoot freeze ray some prework must be done to change texture of ground if (Input.GetButton("Fire1")) { // turn particle effect on emission.enabled = true; if (!iceAudio.isPlaying) { iceAudio.Play(); } if (hit.collider.tag == "MovingPlat") { platform = hit.transform.gameObject.GetComponent <MovingPlatform> (); if (!platform.iced) { platform.Icy(); } } else if (hit.collider.tag == "SolarPanel") { freezePanel = hit.transform.gameObject.GetComponent <FreezePanel> (); if (!freezePanel.frozen) { freezePanel.PowerPlatforms(); } } else { // get reference to terrain object tob = editor.GetTerrainAtObject(hit.transform.gameObject); if (tob != null) { editor.SetEditValues(tob); // convert player world coordinates into terrain coordinates editor.GetCoords(hit, out int terX, out int terZ); // produce ice at specified terrain coordinates editor.ModifyTerrain(terX, terZ); } } } else { if (iceAudio.isPlaying) { iceAudio.Stop(); } emission.enabled = false; } } else { if (iceAudio.isPlaying) { iceAudio.Stop(); } emission.enabled = false; } }