Exemple #1
0
        void FixedUpdate()
        {
            states.FixedTick();
            HandleInput();
            UpdateStates();
            hMove.Tick();
            HandleShake();

            //Find where camera is looking
            Ray ray = new Ray(camTrans.position, camTrans.forward);

            states.lookPosition = ray.GetPoint(20);
            RaycastHit hit;

            Debug.DrawRay(ray.origin, ray.direction, Color.blue);

            if (Physics.Raycast(ray.origin, ray.direction, out hit, 100, shotLayerMask))
            {
                states.lookHitPosition = hit.point;
                if (hit.transform.gameObject.layer == LayerMask.NameToLayer("Shootable"))
                {
                    crosshair.SetColor(Color.red);
                }
                else
                {
                    crosshair.SetColor(Color.white);
                }
            }
            else
            {
                states.lookHitPosition = states.lookPosition;
                crosshair.SetColor(Color.white);
            }


            //Check for obstacles in front of camera
            CameraCollision(camLayerMask);

            //Update camera's postion
            curZ = Mathf.Lerp(curZ, actualZ, Time.deltaTime * 15);
            camTrans.localPosition = new Vector3(cameraNormalX, cameraNormalY, curZ);
        }