// Update is called once per frame
    private void Update()
    {
        // 마우스 왼쪽 버튼을 눌렀을 때
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;

            // Camera.main : 태그가 Camera인 오브젝트, 즉 메인 카메라
            // 카메라로부터 마우스 좌표 위치를 관통하는 광선 생성
            // ray.origin : 광선의 시작 위치
            // ray.direction : 광선의 직선 방향
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);


            // Physics.Raycast() : 광선을 발사해서 부딪치는 오브젝트를 검출
            // 부딪치는 경우 true 반환
            // ray.origin 위치로부터 ray.direction 방향으로 Mathf.Infinity의 광선 발사
            // 광선에 부딪치는 오브젝트의 정보를 hit에 저장
            if (Physics.Raycast(ray, out hit, Mathf.Infinity))
            {
                // hit.transform.position : 부딪친 오브젝트의 위치
                // hit.point : 광선과 오브젝트가 부딪친 세부 위치

                // hit.point를 목표 위치로 이동
                movement3D.MoveTo(hit.point);
            }
        }
    }
    private void Update()
    {
        // 마우스 왼쪽 버튼을 눌렀을 때
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hit;
            // Camera.main : 태그가 "Camera"인 오브젝트 = "Main Camera"
            // 카메라로부터 마우스 좌표(Input.mousePosition) 위치를 관통하는 광선 생성
            // ray.origin : 광선의 시작 위치
            // ray.direction : 광선의 진행 방향
            Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);

            // Physics.Raycast() : 광선을 발사해서 부딪히는 오브젝트를 검출
            // (광선에 부딪히는 오브젝트가 있으면 true 반환)
            // ray.origin 위치로부터 ray.direction 방향으로 무한한 길이(Mathf.Infinity)의 광선 발사
            // 광선에 부딪히는 오브젝트의 정보를 hit에 저장
            if (Physics.Raycast(ray, out hit, Mathf.Infinity))
            {
                // hit.transform.position : 부딪힌 오브젝트의 위치
                // hit.point : 광선과 오브젝트가 부딪힌 세부 위치

                // hit.point를 목표위치로 이동!
                movement3D.MoveTo(hit.point);
            }
        }
    }
Exemple #3
0
    public void PlayerMove()
    {
        float z = 0;
        float x = 0;

        if (playerAnimator.NowAttack() < 0)
        {
            z = Input.GetAxisRaw(VERTICAL);
            x = Input.GetAxisRaw(HORIZONTAL);
        }

        movement3D.TurnRotaion(x, z);
        movement3D.MoveTo(new Vector3(x, 0, z));

        playerAnimator.animator.SetBool(MOVE, movement3D.nowMove);
        playerAnimator.animator.SetBool(RUN, movement3D.run);
    }
    // Update is called once per frame
    void Update()
    {
        float x = Input.GetAxisRaw("Horizontal");   // 방향키 좌우
        float z = Input.GetAxisRaw("Vertical");     // 방향키 위아래

        move3D.MoveTo(new Vector3(x, 0, z));

        if (Input.GetKeyDown(jumpKeyCode))
        {
            move3D.JumpTo();
        }


        float mouseX = Input.GetAxis("Mouse X");    // 마우스 좌우 움직임
                                                    // 왼쪽으로 이동 -1, 오른쪽으로 이동 1
        float mouseY = Input.GetAxis("Mouse Y");    // 마우스 상하 움직임

        // 아래로 이동 -1, 위로 이동 1
        cameraController.RotateTo(mouseX, mouseY);
    }
Exemple #5
0
    void Update()
    {
        // x,z 방향 이동
        float x = Input.GetAxisRaw("Horizontal"); // 방향키 좌,우 움직임
        float z = Input.GetAxisRaw("Vertical");   // 방향키 위,아래 움직임

        movement3D.MoveTo(new Vector3(x, 0, z));  // x,z의 좌표를 MoveTo 함수로 보내주기


        // 점프키를  눌러 y축 방향으로 뛰어 오르기 (Jump)
        if (Input.GetKeyDown(jumKeyCode))
        {
            movement3D.JumpTo();
        }


        //카메라컨트롤러 함수 사용
        //float mouseX = Input.GetAxis("Mouse X"); // 마우스 좌,우 움직임
        //float mouseY = Input.GetAxis("Mouse Y"); // 마우스 위,아래 움직임
        //cameraController.RotateTo(mouseX, mouseY);
    }
Exemple #6
0
    // Update is called once per frame
    void Update()
    {
        float x = Input.GetAxisRaw("Horizontal");   // 방향키 좌/우 움직임
        float z = Input.GetAxisRaw("Vertical");     // 방향키 상/하 움직임

        movement3D.MoveTo(new Vector3(x, 0, z));

        // 점프키를 눌러 y축 방향으로 점프
        if (Input.GetKeyDown(jumpKeyCode) && characterController.isGrounded)
        {
            movement3D.JumpTo();
        }

        float mouseX = Input.GetAxis("Mouse X");    // 마우스 좌/우 움직임
        float mouseY = Input.GetAxis("Mouse Y");    // 마우스 상/하 움직임

        cameraController.RotateTo(mouseX, mouseY);

        // 능력 선택
        if (Input.GetKeyDown(KeyCode.Alpha1))
        {
            ability = Ability.magnetism;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha2))
        {
            ability = Ability.gravity;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha3))
        {
            ability = Ability.acceleration;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha4))
        {
            ability = Ability.invisible;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha5))
        {
            ability = Ability.elasticity;
        }
        else if (Input.GetKeyDown(KeyCode.Alpha6))
        {
            ability = Ability.gunfire;
        }

        // 플레이어 바라보는 방향으로 레이발사. 이걸로 물체 제어할거임
        Ray ray = new Ray(transform.position, cameraController.transform.forward);

        Debug.DrawRay(ray.origin, ray.direction * 50, Color.red);

        // 물체 상호작용
        if (Input.GetMouseButtonDown(0))
        {
            RaycastHit hitInfo; // ray와 충돌한 물체 정보
            Physics.Raycast(ray, out hitInfo);
            GameObject hitObject = hitInfo.transform.gameObject;
            Debug.Log(ability);


            //물체를 클릭했고 그것이 Cube라면
            if (hitInfo.collider != null && hitObject.CompareTag("Cube"))
            {
                switch (ability)
                {
                case Ability.magnetism:
                    break;

                case Ability.gravity:
                    hitObject.GetComponent <ActBoxController>().reverseGravity =
                        !hitObject.GetComponent <ActBoxController>().reverseGravity;
                    break;

                case Ability.acceleration:
                    break;

                case Ability.invisible:
                    hitObject.GetComponent <MeshRenderer>().enabled =
                        !hitObject.GetComponent <MeshRenderer>().enabled;
                    break;

                case Ability.elasticity:
                    break;

                default:
                    Debug.Log("player ability select error!");
                    break;
                }
            }
        }
    }