using UnityEngine; namespace Photon.Pun.Demo.Procedural { /// /// Simple Input Handler to control the camera. /// public class ProceduralController : MonoBehaviour { private Camera cam; #region UNITY public void Awake() { cam = Camera.main; } /// /// Use horizontal and vertical axes (by default WASD or the arrow keys) for moving for-, back- or sidewards. /// Use E or Q for 'zooming' in or out. /// Use the left mouse button to decrease a Block's height /// or the right mouse button to increase a Block's height. /// public void Update() { float h = Input.GetAxisRaw("Horizontal"); float v = Input.GetAxisRaw("Vertical"); if (h >= 0.1f) { cam.transform.position += Vector3.right * 10.0f * Time.deltaTime; } else if (h <= -0.1f) { cam.transform.position += Vector3.left * 10.0f * Time.deltaTime; } if (v >= 0.1f) { cam.transform.position += Vector3.forward * 10.0f * Time.deltaTime; } else if (v <= -0.1f) { cam.transform.position += Vector3.back * 10.0f * Time.deltaTime; } if (Input.GetKey(KeyCode.Q)) { cam.transform.position += Vector3.up * 10.0f * Time.deltaTime; } else if (Input.GetKey(KeyCode.E)) { cam.transform.position += Vector3.down * 10.0f * Time.deltaTime; } if (Input.GetMouseButtonDown(0) || Input.GetMouseButtonDown(1)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, 100.0f)) { Block b = hit.transform.GetComponent(); if (b != null) { if (Input.GetMouseButtonDown(0)) { WorldGenerator.Instance.DecreaseBlockHeight(b.ClusterId, b.BlockId); } else if (Input.GetMouseButtonDown(1)) { WorldGenerator.Instance.IncreaseBlockHeight(b.ClusterId, b.BlockId); } } } } } #endregion } }