- Home /
Error CS1525 calling OntriggerEnter
Having trouble with this code here guys i've created a dialogue script works perfectly however i would like to add it to a monster thats in my scene so the dialogue starts only when i'm within range of him....I'm added my sphere collider, character controller everything ready as far as my knowledge goes but i am left with 1 error...
Assets/AIScript.cs(49,22): error CS1525: Unexpected symbol public</p> <p>thats this line here: <strong>public void OntriggerEnter(Collider Player) {</strong></p> <p>Ok here's the code i'm using:</p> <p>using UnityEngine; using System.Collections;</p> <p>[RequireComponent (typeof(DialogueInstance))] [RequireComponent (typeof(SphereCollider))]</p> <p>public class AIScript : MonoBehaviour { public float preceptionRadius = 10;</p> <pre><code>public float baseMeleeRange = 3.5f; public Transform target; private Transform _Transform; private const float ROTATION_DAMP = 3f; private const float FORWARD_DAMP = 9f; // Used for initialization void Start () { SphereCollider sc = GetComponent<SphereCollider>(); CharacterController cc = GetComponent<CharacterController>(); if(sc == null) { Debug.LogError("There is no spherecollider ont this mob"); } else { sc.isTrigger = true; } if(cc== null) { Debug.LogError("There is no charactercontroller on this mob"); } else { sc.center = cc.center; sc.radius = preceptionRadius; } _Transform = transform; GameObject go = GameObject.FindGameObjectWithTag("Player"); if(go == null) Debug.LogError("Could not find Player"); target = go.transform; } //Update is called once per frame void Update () { public void OntriggerEnter(Collider Player) { FindObjectOfType(DialogueInstance.gameObject); Debug.Log("Entered"); } public void OntriggerExit(Collider other) { Debug.Log("Exited"); } </code></pre> <p>}</p> <p>Any help would be GREATLY appreciated people :]</p> <p>using UnityEngine; using System.Collections;</p> <p>public class DialogueTrigger : MonoBehaviour {</p> <pre><code>// Use this for initialization void Start () { } </code></pre> <p>//Update is called once per frame void Update () { }</p> <p>void OnTriggerEnter(Collider Player) { FindObjectOfType(DialogueInstance.gameObject); Debug.Log("Entered"); }</p> <p>void OnTriggerExit(Collider other) { Debug.Log("Exited"); } }</p> <p>my new code gives me these errors :(</p> <p>Assets/DialogueTrigger.cs(16,22): error CS0103: The name
DialogueInstance' does not exist in the current context
Assets/DialogueTrigger.cs(16,5): error CS1502: The best overloaded method match for UnityEngine.Object.FindObjectOfType(System.Type)' has some invalid arguments</p> <p>Assets/DialogueTrigger.cs(16,5): error CS1503: Argument <code>#1' cannot convert</code>object' expression to type
System.Type'
Help i'm getting really frustrated... :[
Answer by · Apr 29, 2011 at 01:17 AM
A few things:
- It's OnTriggerEnter and OnTriggerExit.
- You don't call them from within Update() as it's a standard function on its own.
Try this:
//Update is called once per frame void Update () { }
void OnTriggerEnter(Collider Player) { FindObjectOfType(DialogueInstance.gameObject); Debug.Log("Entered"); }
void OnTriggerExit(Collider other) { Debug.Log("Exited"); }
Thank yo mate but it didn't work i now get the same error 5 times: Assets/DialogueTrigger.js(2,5): UCE0001: ';' expected. Insert a semicolon at the end.
it seems an easy fix but i cant spot it :-/