// Use this for initialization void Start() { ps = FindObjectOfType <PedestalScript>(); lms = FindObjectOfType <LevelManagerScript>(); circularSlider.fillAmount = 1.0f; time = 600.0f; }
private void KillGhost(GameObject go) { GameObject pedestalGO = Instantiate <GameObject>(pedestalPrefab, go.transform.position, Quaternion.identity); PedestalScript pedestal = pedestalGO.GetComponent <PedestalScript>(); pedestal.hasMirror = false; Destroy(go); }
private void KillGhost(GameObject go) { GameObject pedestalGO = Instantiate <GameObject>(pedestalPrefab, go.transform.position, Quaternion.identity); PedestalScript pedestal = pedestalGO.transform.GetChild(1).GetComponent <PedestalScript>(); pedestal.originalParent = go.transform.parent.parent; pedestal.transform.parent.parent = pedestal.originalParent; pedestal.hasMirror = false; pedestal.locked = false; Destroy(go); }
// Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Mouse0)) { GameObject go = GetObject(); if (go) { switch (go.tag) { case "Pedestal": PedestalScript ped = go.GetComponent <PedestalScript>(); if (ped.hasMirror) { Grab(go); } else { Place(go); } if (!ped.locked) { Move(go); } break; case "Mirror": //editMode break; } } } if (Input.GetKey(KeyCode.Mouse1)) { _holdingSword = true; } else { _holdingSword = false; } }
// Update is called once per frame public IEnumerator ActivatePainting() { Vector3 targetPosition = Camera.main.transform.position + Camera.main.transform.forward * 0.3f; Quaternion targetRotation = Quaternion.LookRotation(Camera.main.transform.forward, Vector3.up) * Quaternion.AngleAxis(180.0f, Vector3.up); Vector3 origPosition = transform.position; Quaternion origRotation = transform.rotation; LookAtObject.lockCameraRaycast = true; float timer = 0f; while (timer < flightTime) { float curTime = Mathf.SmoothStep(0.0f, 1.0f, timer / flightTime); transform.position = Vector3.Lerp(origPosition, targetPosition, curTime); transform.rotation = Quaternion.Slerp(origRotation, targetRotation, curTime); timer += Time.deltaTime; yield return(null); } //wait a bit yield return(new WaitForSeconds(waitTime)); //scale while flying back timer = 0f; while (timer < flightTime) { LookAtObject.lockCameraRaycast = true; float curTime = Mathf.SmoothStep(0.0f, 1.0f, timer / flightTime); float curScaleTime = Mathf.Max(0.0f, 1.0f - timer / scaleTime); transform.position = Vector3.Lerp(targetPosition, origPosition, curTime); transform.rotation = Quaternion.Slerp(targetRotation, origRotation, curTime); transform.localScale = origScale * curScaleTime; timer += Time.deltaTime; yield return(null); } if (flyingPaintingsCount == 3) { //scale all remaining paintings timer = 0f; while (timer < scaleTime) { float curScaleTime = Mathf.Max(0.0f, 1.0f - timer / scaleTime); foreach (PaintingScript painting in paintings) { if (painting.gameObject.activeSelf && painting != this) { painting.transform.localScale = painting.origScale * curScaleTime; } } timer += Time.deltaTime; yield return(null); } foreach (PaintingScript painting in paintings) { painting.gameObject.SetActive(false); } //open trapdoors TrapDoorScript.StartTrapDoorSequence(); PedestalScript.StartPedestalSequence(); } LookAtObject.lockCameraRaycast = false; }