コード例 #1
0
    private void ProcessMove()
    {   // Process movement
        if (Physics.Raycast(transform.position + Vector3.up, transform.forward, out hit, 1f))
        {
            if (hit.collider.GetComponent <ProgressionLighting>())
            {
                hit.collider.GetComponent <ProgressionLighting>().TurnOnTorch();
            }
            else if (hit.collider.GetComponent <WinCondition>())
            {
                _pStats.Victory();
                _canvasRef.WipeCanvas();
                _canvasRef.SetGameReset = ResetPlayer;
                //PlayerLevelStart();
            }
        }
        if (Physics.Raycast(transform.position + Vector3.up, -transform.up, out hit, 1.5f))
        {
            if (hit.collider.GetComponent <InteractableObject>())
            {
                if (hit.collider.GetComponent <InteractableObject>().GetPuzzleManager.GetPzType() == PzType.StepPz)
                {
                    Debug.Log("Stepped On.");
                    hit.collider.GetComponent <InteractableObject>().Interact();
                }

                //hit.collider.GetComponent<InteractableObject>().
            }
        }
        if (_moveVector == Vector3.zero) //set sprinting to 1 if not moving
        {
            _sprinting = false;
        }
        if (_sprint && _canSprint) //process sprint
        {
            _sprinting = true;
        }
        if (_moveVector.x != 0.0f || _moveVector.z != 0.0f) //move player
        {
            float _move = _moveSpeed;
            if (_sprinting)
            {
                _move = _sprintSpeed;
            }
            transform.rotation = Quaternion.LookRotation(_moveVector);
            _cc.Move(_moveVector.normalized * _move * Time.deltaTime);
        }
    }