Beispiel #1
0
 // 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);
    }
Beispiel #3
0
    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;
        }
    }
Beispiel #5
0
    // 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;
    }