 <p>The script was all correct, my problem was that my parent "FPSController" object didn't have a Rigidbody applied to it and should be the only object (as opposed to the "FirstPersonCharacter" object I had nested inside of it) that the scripts are applied to. That seemed to fix the problem.</p> <p>The correct code is:</p> <pre><code>/* coincollect.cs */ using UnityEngine; using System.Collections; using UnityEngine.UI; public class coincollect : MonoBehaviour { private int _score; [SerializeField] private Text _text; void OnTriggerEnter ( Collider collision ){ if(collision.gameObject.tag == "coin"){ Destroy(collision.gameObject); _score++; _text.text = "Score: " + _score; } } } </code></pre> <p>and:</p> <pre><code>/* warp.js */ var warptarget001 : GameObject; var warptarget002 : GameObject; function OnTriggerEnter (col : Collider) { if (col.gameObject.tag == "warp001") { this.transform.position = warptarget002.transform.position; } if (col.gameObject.tag == "warp002") { this.transform.position = warptarget001.transform.position; } } </code></pre>