Hello all right?
He was accompanying a video lesson to make camera movement, and in the videothe example is displayed in javascript, I’m trying to convert to C #, but I’m having some small problems, the editor of Unity accuses the following errors:
Assets/Camera.cs(30,28): error CS1502: The best overloaded method match for `UnityEngine.Physics.Linecast(UnityEngine.Vector3, UnityEngine.Vector3, out UnityEngine.RaycastHit, int)’ has some invalid arguments
–
Assets/Camera.cs(30,28): error CS1620: Argument #3' is missing
out’ modifier
–
Assets/Camera.cs(33,48): error CS1502: The best overloaded method match for `UnityEngine.Mathf.SmoothDamp(float, float, ref float, float)’ has some invalid arguments
–
Assets/Camera.cs(33,48): error CS1620: Argument #3' is missing
ref’ modifier
Could someone help me identify the error. Thank you.
Code below:
using UnityEngine;
using System.Collections;
public class Camera : MonoBehaviour {
public float height;
public float distance;
public float damping;
public float cameraCollisionTolerance;
public Transform target;
private float yVelocity;
private float zVelocity;
private Transform t;
void Awake () {
t = transform;
}
void LaterUpdate () {
// Calcula a posiçao desejada para a Camera ficar
float localX = 0;
float localY = height;
float localZ = -1 * distance;
Vector3 desiredWorldPosition = t.parent.TransformPoint(new Vector3(localX, localY, localZ));
// Detecta se tem algum objeto obstruindo a visao da camera do jogador
int layerMark = ~ (1 << 8);
RaycastHit hit = new RaycastHit();
if(Physics.Linecast(target.position, desiredWorldPosition, hit, layerMark)) {
t.position = hit.point + (target.position - hit.point).normalized * cameraCollisionTolerance;
} else {
float yDamping = Mathf.SmoothDamp(t.localPosition.y, localY, yVelocity, damping);
float zDamping = Mathf.SmoothDamp(t.localPosition.z, localZ, zVelocity, damping);
t.localPosition = new Vector3(0, yDamping, zDamping);
}
}
}