Beispiel #1
0
    // Update is called once per frame
    void Update()
    {
        Transform mainCameraTransform = Camera.main.transform;

        tempDir = mainCameraTransform.rotation * new Vector3(mDir.x, Physics.gravity.y / 4, mDir.y);

        animator.SetBool("Walking", mDir.magnitude > 0.1f);
        cc.Move((canMove ? (tempDir * (isRunning ? Speed * RunSpeedMult : Speed)) : Physics.gravity) * Time.deltaTime);

        Ray        ray = new Ray(mainCameraTransform.position, cameraRayOffset.localRotation * mainCameraTransform.forward);
        RaycastHit hit;

        if (Physics.SphereCast(ray, 1.5f, out hit, 5, LayerMask.GetMask("Item")))
        {
            BasicItem item = hit.collider.GetComponent <BasicItem>();
            if (item != null && item != lastItemTargeted)
            {
                if (lastItemTargeted != null)
                {
                    lastItemTargeted.TargetingStop();
                }

                lastItemTargeted = item;
                item.TargetingStart();
            }
        }
        else
        {
            if (lastItemTargeted != null)
            {
                lastItemTargeted.TargetingStop();
                lastItemTargeted = null;
            }
        }

        //Debug.DrawLine(mainCamera.transform.position, mainCamera.transform.position + (cameraRayOffset.localRotation * mainCamera.transform.forward * 5), Color.red);
    }