New to unity and I cannot for the life of me figure out what the problem is in this code. I'm working from a book (Unity in Action) and even after what I thought was copying line for line, I still get errors.
using UnityEngine;
using System.Collections;
public class RayShooter : MonoBehaviour {
private Camera _camera;
void Start() {
_camera = GetComponent();
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = false;
}
void OnGUI() {
int size = 12;
float posX = _camera.pixelWidth/2 - size/4;
float posY = _camera.pixelHeight/2 - size/2;
GUI.Label(new Rect(posX, posY, size, size), "*");
}
void Update() {
if (Input.GetMouseButtonDown(0)) {
Vector3 point = new Vector3(_camera.pixelWidth/2, _camera.pixelHeight/2, 0);
Ray ray = _camera.ScreenPointToRay(point);
RaycastHit hit;
if (Physics.Raycast(ray, out hit)) {
GameObject hitObject = hit.transform.gameObject;
ReactiveTarget target = hitObject.GetComponent();
if (target != null) {
target.ReactToHit();
} else {
StartCoroutine(SphereIndicator(hit.point));
}
}
}
private IEnumerator SphereIndicator(Vector3 pos) {
GameObject sphere = GameObject.CreatePrimitive(PrimitiveType.Sphere);
sphere.transform.position = pos;
yield return new WaitForSeconds(1);
Destroy(sphere);
}
}
Apparently there is an error with 'private' being unexpected and a '(' somewhere. Please help, I've been at this forever...
↧