NullReferenceException: Object reference not set to an instance of an object
PlayerMovement.doDamage () (at Assets/Scripts/PlayerMovement.cs:31)
PlayerMovement.Update () (at Assets/Scripts/PlayerMovement.cs:16)
using UnityEngine;
using System.Collections;
public class PlayerMovement : MonoBehaviour {
public Transform hitStart, hitEnd;
public bool inContact = false;
void Start () {
}
void Update () {
Movement ();
lineDrawing ();
doDamage ();
}
void lineDrawing(){
Debug.DrawLine (hitStart.position, hitEnd.position, Color.green);
if (Physics2D.Linecast (hitStart.position, hitEnd.position, 1 << LayerMask.NameToLayer("Monster"))) {
inContact = true;
}
else{
inContact = false;
}
}
void doDamage(){
GameObject ghostGameobject = GameObject.Find("Ghost1");
Ghost ghostController = ghostGameobject.GetComponent<Ghost>();
if (Input.GetKeyDown (KeyCode.E)) {
if(inContact == true){
ghostController.health = ghostController.health - 5;
}
}
}
void Movement(){
var playerDiagonalSpeed = 3f;
var playerSpeed = 4f;
if (Input.GetAxisRaw("Horizontal")>0 && Input.GetAxisRaw("Vertical")>0) {
transform.Translate(Vector2.right * playerDiagonalSpeed * Time.deltaTime);
transform.Translate(Vector2.up * playerDiagonalSpeed * Time.deltaTime);
transform.eulerAngles = new Vector2(0,0);
}
else if (Input.GetAxisRaw("Horizontal")<0 && Input.GetAxisRaw("Vertical")>0) {
transform.Translate(Vector2.right * playerDiagonalSpeed * Time.deltaTime);
transform.Translate(Vector2.up * playerDiagonalSpeed * Time.deltaTime);
transform.eulerAngles = new Vector2(0,180);
}
else if (Input.GetAxisRaw("Horizontal")>0 && Input.GetAxisRaw("Vertical")<0) {
transform.Translate(Vector2.right * playerDiagonalSpeed * Time.deltaTime);
transform.Translate(Vector3.down * playerDiagonalSpeed * Time.deltaTime);
transform.eulerAngles = new Vector2(0,0);
}
else if (Input.GetAxisRaw("Horizontal")<0 && Input.GetAxisRaw("Vertical")<0) {
transform.Translate(Vector2.right * playerDiagonalSpeed * Time.deltaTime);
transform.Translate(Vector3.down * playerDiagonalSpeed * Time.deltaTime);
transform.eulerAngles = new Vector2(0,180);
}
else if (Input.GetAxisRaw("Horizontal")>0) {
transform.Translate(Vector2.right * playerSpeed * Time.deltaTime);
transform.eulerAngles = new Vector2(0,0);
}
else if (Input.GetAxisRaw("Horizontal")<0) {
transform.Translate(Vector2.right * playerSpeed * Time.deltaTime);
transform.eulerAngles = new Vector2(0,180);
}
else if (Input.GetAxisRaw("Vertical")>0) {
transform.Translate(Vector2.up * playerSpeed * Time.deltaTime);
}
else if (Input.GetAxisRaw("Vertical")<0) {
transform.Translate(Vector3.down * playerSpeed * Time.deltaTime);
}
}
}