2D Roguelike tutorial script keeps giving me error CS0120
I keep getting this line in the MovingObject Script for the 2D Roguelike tutorial
Assets/Scripts/MovingObject.cs(30,15): error CS0120: An object reference is required to access non-static member `UnityEngine.Collider.enabled'
here is my entire script (tell me if i should shorten the post).
using System.Collections; using System.Collections.Generic; using UnityEngine;
5public abstract class MovingObject : MonoBehaviour {
public float moveTime = 0.1f;
public LayerMask blockingLayer;
10 private BoxCollider2D boxCollider; private Rigidbody2D rb2D; private float inverseMoveTime;
15 // Use this for initialization protected virtual void Start () { boxCollider = GetComponent (); rb2D = GetComponent (); 20 inverseMoveTime = 1f / moveTime; }
protected bool Move (int xDir, int yDir, out RaycastHit2D hit)
{
25 Vector2 start = transform.position; Vector2 end = start + new Vector2 (xDir, yDir);
boxCollider.enabled = false;
hit = Physics2D.Linecast (start, end, blockingLayer);
30 BoxCollider.enabled = true;
if (hit.transform == null)
{
StartCoroutine (SmoothMovement (end));
35 return true; } return false; }
40 protected IEnumerator SmoothMovement (Vector3 end) { float sqrRemainingDistance = (transform.position - end).sqrMagnitude;
while (sqrRemainingDistance > float.Epsilon)
45 { Vector3 newPosition = Vector3.MoveTowards (rb2D.position, end, inverseMoveTime * Time.deltaTime); rb2D.MovePosition (newPosition); sqrRemainingDistance = (transform.position - end).sqrMagnitude; yield return null; 50 } }
protected virtual void AttemptMove <T> (int xDir, int yDir)
where T : Component
55 { RaycastHit2D hit; bool canMove = Move (xDir, yDir, out hit);
if (hit.transform == null)
60 return;
T hitComponent = hit.transform.GetComponent<T> ();
if (!canMove && hitComponent != null)
OnCantMove (hitComponent);
65 }
protected abstract void OnCantMove <T> (T component)
where T : Component;
70 }
If it is in the unity inspector tell me that too.
I don't know why segments of the code were out of the code sample place