- Home /
 
               Question by 
               Chocolade · Feb 27, 2017 at 01:38 PM · 
                c#scripting problemscript.  
              
 
              How do i add a trigger to gameobject ?
I have array of waypoints
 using System.Collections;
 using System.Collections.Generic;
 using UnityEditor;
 using UnityEngine;
 using UnityStandardAssets.Characters.ThirdPerson;
 
 public class WayPoints : MonoBehaviour {
 
     public GameObject[] waypoints;
     public Transform target;
     public float moveSpeed = 1f;
     public float rotationSpeed = 1f;
     private Transform myTransform;
     private int targetsIndex = 0;
     private Vector3 originalPosition;
 
     public float walkSpeed = 15f;
 
     void Awake()
     {
         myTransform = transform;
     }
     // Use this for initialization
     void Start()
     {
         waypoints = GameObject.FindGameObjectsWithTag("ClonedObject");
 
         originalPosition = myTransform.position;
     }
 
     // Update is called once per frame
     void Update()
     {
         if (MyCommands.walkbetweenwaypoints == true)
         {
             WayPointsAI();
         }
 
         DrawLinesInScene();
     }
 
     private void WayPointsAI()
     {
         if (targetsIndex == waypoints.Length)
             targetsIndex = 0;
         target = waypoints[targetsIndex].transform;
         float distance = Vector3.Distance(myTransform.position, target.transform.position);
         myTransform.rotation = Quaternion.Slerp(myTransform.rotation, Quaternion.LookRotation(target.position - myTransform.position), rotationSpeed * Time.deltaTime);
 
         //move towards the player
         myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
         if (distance < 2f)
             targetsIndex++;
     }
 
     void DrawLinesInScene()
     {
         // draw lines between each checkpoint //
         for (int i = 0; i < waypoints.Length - 1; i++)
         {
             Debug.DrawLine(waypoints[i].transform.position, waypoints[i + 1].transform.position, Color.blue);
         }
 
         // draw a line between the original transform start position 
         // and the current transform position //
         Debug.DrawLine(originalPosition, transform.position, Color.red);
 
         // draw a line between current transform position and the next waypoint target
         // each time reached a waypoint.
         if (target != null)
             Debug.DrawLine(target.transform.position, myTransform.position, Color.green);
     }
 }
 
In the Start function i want to add to each waypoint a trigger. So after that i will be able to use this scripts with the waypoints
 using UnityEngine;
 
 public class WayPoints : MonoBehaviour
 {
     //setters for setting everything in Unity editor
     public float moveSpeedSetter = 1f;
     public float moveSpeedSlowedSetter = 0.5f;
     public CharacterMotor motorSetter;
 
     //static objects changeable via any script
     public static float moveSpeed;
     public static float moveSpeedSlowed;
     public static CharacterMotor motor;
 
     public static void SetSpeed(float speed)
     {
         motor.movement.maxForwardSpeed = speed;
     }
 
     private void Start()
     {
         moveSpeed = moveSpeedSetter;
         moveSpeedSlowed = moveSpeedSlowedSetter;
         motor = motorSetter;
         motor.movement.maxForwardSpeed = moveSpeed;
     }
 }
 After that create empty object in all your waypoints and add trigger to them. Then put this script on that newly created object with trigger.
 
 using UnityEngine;
 
 class SlowDown : MonoBehaviour
 { 
     private void OnTriggerEnter(Collider other)
     {
         Debug.Log("Object " +other.name+" entered "+ name);
         WayPoints.SetSpeed(WayPoints.moveSpeedSlowed);
     }
 
     private void OnTriggerExit(Collider other)
     {
         Debug.Log("Object " + other.name + " exited " + name);
         WayPoints.SetSpeed(WayPoints.moveSpeed);
     }
 }
               Comment
              
 
               
               
               Best Answer 
              
 
              Answer by tanoshimi · Feb 27, 2017 at 01:45 PM
 SphereCollider sc = gameObject.AddComponent<SphereCollider>( ) as SphereCollider;
 sc.isTrigger = true;
Your answer
 
 
             Follow this Question
Related Questions
How do i use a public sealed class to create objects and destroy them ? 0 Answers
How can I call the Load method and/or the ShootingSettings method also only once in the Update ? 1 Answer
How can i check and fire an event when the user look at specific object ? 0 Answers
How can i List objects by name but also in small text or big text or any kind ? 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                