예제 #1
0
    void SetRoomCode()
    {
        ColorLock colorLock = GameObject.FindGameObjectWithTag(roomLock).GetComponent <ColorLock>();

        code1.color = colors[colorLock.goodDigit_1];
        code2.color = colors[colorLock.goodDigit_2];
        code3.color = colors[colorLock.goodDigit_3];
    }
예제 #2
0
    IEnumerator digitRotate()
    {
        RaycastHit hit;
        //Ray ray = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0f));
        Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);


        if (Physics.Raycast(ray, out hit) && hit.collider.tag == "lockTag")
        {
            ColorLock buttonPad = hit.collider.GetComponentInParent <ColorLock>();

            if (buttonPad.gameObject.tag == roomLock)
            {
                hit.collider.transform.Rotate(Vector3.up * angleStep);

                var digitNumber = int.Parse(hit.collider.name.Substring(hit.collider.name.Length - 1));

                digit[digitNumber] = digit[digitNumber] + Mathf.FloorToInt(1 * Mathf.Sign(angleStep));


                if (digit[digitNumber] == -1)
                {
                    digit[digitNumber] = 5;
                }

                if (digit[digitNumber] == 6)
                {
                    digit[digitNumber] = 0;
                }

                if (digit[1] == goodDigit_1 && digit[2] == goodDigit_2 && digit[3] == goodDigit_3)
                {
                    Unlocked.Invoke();
                    doorInteract.locked = false;
                    CamOff();
                }

                Debug.Log(digit[digitNumber]);
            }
        }

        yield return(null);
    }