Esempio n. 1
0
 // Start is called before the first frame update
 void Start()
 {
     //나의 모든 차일드를 리스트에 담겠다.
     for (int i = 0; i < transform.childCount; i++)
     {
         PuzzleFramePiece puzzleScripts = transform.GetChild(i).gameObject.GetComponent <PuzzleFramePiece>();
         puzzleScripts.myID = i;
         puzzleFrameList.Add(transform.GetChild(i).gameObject);
         checkMyChildChild.Add(transform.GetChild(i).transform);
     }
 }
Esempio n. 2
0
 public void OnMouseButtonUp()
 {
     //후광 안보이게 === 왕규
     if (clickedPuzzle != null)
     {
         clickedPuzzle.GetChild(0).GetComponent <MeshRenderer>().enabled = false;
         glowAction    = false;
         clickedPuzzle = null;
         pfp           = null;
     }
 }
Esempio n. 3
0
    void Update()
    {
        #region (라인렌더 레이져 효과 내기) ==왕규
        //레이저 재질의 offset의 값을 계속 감소시키는 값.
        xOffset -= Time.deltaTime * offsetSpeed;

        // line.material.mainTextureOffset = new Vector2(xOffset, 0);
        line.material.SetTextureOffset("_MainTex", new Vector2(xOffset, 0));

        #endregion

        //Ray ray = cam.ScreenPointToRay(viewCenter);
        Ray ray = new Ray(mainTr.position, mainTr.forward);

        // Debug.DrawRay(mainTr.position, mainTr.forward*100, Color.red);

        //만약 레이가 어딘가에 부딪히면
        RaycastHit hit;
        int        layer = 0;

        line.SetPosition(0, mainTr.position + new Vector3(0, -0.5f, 0));

        if (clickedPuzzle == null && Input.GetMouseButtonDown(0))
        {
            layer = 1 << LayerMask.NameToLayer("Puzzle");
            if (Physics.Raycast(ray, out hit, 100, layer))
            {
                clickedPuzzle = hit.transform;

                //후광 보이도록 === 왕규
                clickedPuzzle.GetChild(0).GetComponent <MeshRenderer>().enabled = true;
                //후광 재질이 번쩍이도록 한다
                glowAction = true;
            }
        }

        if (clickedPuzzle)
        {
            layer = 1 << LayerMask.NameToLayer("PuzzleFrames");
            if (Physics.Raycast(ray, out hit, 100, layer))
            {
                clickedPuzzle.position = hit.point;
                pfp = hit.transform.GetComponent <PuzzleFramePiece>();
            }
            else
            {
                layer = 1 << LayerMask.NameToLayer("Test");
                if (Physics.Raycast(ray, out hit, 100, layer))
                {
                    clickedPuzzle.position = hit.point;
                }
            }
            line.SetPosition(1, clickedPuzzle.position);
        }

        if (Input.GetMouseButtonUp(0))
        {
            if (pfp == null || pfp.isEnter == false)
            {
                OnMouseButtonUp();
            }
        }

        if (glowAction)
        {
            clickedPuzzle.GetChild(0).GetComponent <MeshRenderer>().material.mainTextureOffset = new Vector2(-xOffset, 0);
        }
    }