Small oversight on my part:
using UnityEngine;
using System.Collections;
public class TerrainHole : MonoBehaviour {
public Collider player; // assign in inspector?
public Terrain terrain;terrainCollider; // assign in inspector?
void OnTriggerEnter (Collider c) {
if (c.tag == CompareTag("Player")) {
Physics.IgnoreCollision(c, terrain.GetComponent<Collider>()terrainCollider, true);
}
}
void OnTriggerExit (Collider c) {
if (c.tag == CompareTag("Player")) {
Physics.IgnoreCollision(c, terrain.GetComponent<Collider>()terrainCollider, false);
}
}
}
I was referencing Collider player instead of Collider c. Since the player's collider is passed as an argument, there's no need to hold a reference to the player as a member variable.