UnityEngine.Component does not contain definition for
I copied a script from Unity's site for camera pinch zoom but when I saved the script I got the following message in Unity. "UnityEngine.Component does not contain a definition for" and everything that contained the word orthographic and fieldOfView was after that
Here is the script using UnityEngine;
public class PinchZoom : MonoBehaviour { public float perspectiveZoomSpeed = 0.5f; // The rate of change of the field of view in perspective mode. public float orthoZoomSpeed = 0.5f; // The rate of change of the orthographic size in orthographic mode.
void Update()
{
// If there are two touches on the device...
if (Input.touchCount == 2)
{
// Store both touches.
Touch touchZero = Input.GetTouch(0);
Touch touchOne = Input.GetTouch(1);
// Find the position in the previous frame of each touch.
Vector2 touchZeroPrevPos = touchZero.position - touchZero.deltaPosition;
Vector2 touchOnePrevPos = touchOne.position - touchOne.deltaPosition;
// Find the magnitude of the vector (the distance) between the touches in each frame.
float prevTouchDeltaMag = (touchZeroPrevPos - touchOnePrevPos).magnitude;
float touchDeltaMag = (touchZero.position - touchOne.position).magnitude;
// Find the difference in the distances between each frame.
float deltaMagnitudeDiff = prevTouchDeltaMag - touchDeltaMag;
// If the camera is orthographic...
if (camera.isOrthoGraphic)
{
// ... change the orthographic size based on the change in distance between the touches.
camera.orthographicSize += deltaMagnitudeDiff * orthoZoomSpeed;
// Make sure the orthographic size never drops below zero.
camera.orthographicSize = Mathf.Max(camera.orthographicSize, 0.1f);
}
else
{
// Otherwise change the field of view based on the change in distance between the touches.
camera.fieldOfView += deltaMagnitudeDiff * perspectiveZoomSpeed;
// Clamp the field of view to make sure it's between 0 and 180.
camera.fieldOfView = Mathf.Clamp(camera.fieldOfView, 0.1f, 179.9f);
}
}
}
}
Please help me
I got the following message in Unity. "UnityEngine.Component does not contain a definition for"
...for what? You left out the most relevant part of the error message.
I suspect it's the "camera" reference that's causing this. Try replacing all the camera.xxxxx
bits with Camera.main.xxxxx
Is this the entire class? Where is the camera variable defined? Please put everything in code to make it easier for us to read. Chances are, the script is trying to access a deprecated static variable from older versions of unity, like how you can't call anything 'light' because it's trying to access a static variable that technically doesn't exist anymore.
Answer by Yaakov_Shahak · Oct 15, 2017 at 02:10 PM
Use this instead:
// Otherwise change the field of view based on the change in distance between the touches.
Camera.main.fieldOfView += deltaMagnitudeDiff * perspectiveZoomSpeed;
// Clamp the field of view to make sure it's between 0 and 180.
Camera.main.fieldOfView = Mathf.Clamp(Camera.main.fieldOfView, 0.1f, 179.9f);
Your answer
![](https://koobas.hobune.stream/wayback/20220612093244im_/https://answers.unity.com/themes/thub/images/avi.jpg)