Пример #1
0
    private void OnCollisionEnter(Collision collision)
    {
        ContactPoint     contact        = collision.contacts[0];
        MainCameraFollow cam            = GameObject.Find("Main Camera").GetComponent <MainCameraFollow>();
        Vector3          impulse        = collision.impulse;
        Vector3          collisionForce = impulse / Time.fixedDeltaTime;
        //0.1 left, -0.1 right in the point  y=1 center
        Vector3 point = transform.InverseTransformPoint(contact.point);
        //interia on the player rigid body
        float force       = impulse.magnitude;
        float angle       = CalcAngle(force);
        float speedFactor = CalcSpeed(force);

        if (speedFactor <= 1)
        {
            cam.shakeCamera(0.1f, 0.05f);
        }
        else
        if (speedFactor >= 3)
        {
            cam.shakeCamera(speedFactor / 2, speedFactor / 10);
            cam.beDizzy(speedFactor / 2, speedFactor * 10);
        }
        if (point.x < 0)
        {
            cam.RotateCam(angle, speedFactor * defaultSpeed, 0);
            //right
        }
        else if (point.x > 0)
        {
            //left
            cam.RotateCam(-1 * angle, speedFactor * defaultSpeed, 0);
        }
        else if (point.x == 0)
        {
            //back
            cam.moveCameraBack(speedFactor, speedFactor);
        }
    }
Пример #2
0
 // Use this for initialization
 void Start()
 {
     cfwb = GetComponent <MainCameraFollow>();
 }