- Home /
 
How do I check if X position is increased by 5?
I want to make a prefab do something when after its X position has been increased to 5.
Does anyone know how I can check if the X position of a prefab is increased by 5.
I am using C#. Any clue as of how I can do this would be greatly apreciated.
Answer by alpaca of zion · Feb 02, 2013 at 05:00 PM
Here is some pseudo code.
 private Vector3 startPos;
 
 void Start()
 {
     startPos = transform.position;
 }
 
 void Update
 {
     if (transform.position.x + 5 >= startlocation.x)
         DoYouLogicHere;
 
 }
 
              Note: The methods are called "Start" and "Update", not with an "on".
haha, I'm program$$anonymous$$g in Java for my "real" job right now.
Thank you for the quick answer! But I get the error message startlocation doesn't exist. Do you know where I set it up and/or get it from?
Script for the prefab:
 using UnityEngine;
 using System.Collections;
 
 public class Projectile : $$anonymous$$onoBehaviour 
 {
     
     public static bool c = true;
     
     public float ProjectileSpeed;
     public GameObject ExplosionPrefab;
     
     private Transform myTransform;
     
     void Start () 
     {
         myTransform = transform; 
     }
     
     void Update () 
     {
         if (c==true) 
         {
             
             float amtTo$$anonymous$$ove = ProjectileSpeed * Time.deltaTime;
             myTransform.Translate(Vector3.left * amtTo$$anonymous$$ove);
 
              if (transform.position.x + 5 >= startlocation.x)
                 print ("hey");
         }
         
         else if (c==false) 
         {
             float amtTo$$anonymous$$ove = ProjectileSpeed * Time.deltaTime;
             myTransform.Translate(Vector3.right * amtTo$$anonymous$$ove);                
         }    
         
     
     }
     
     void OnTriggerEnter (Collider otherObject)
     {
         if (otherObject.tag == "enemy")
         {
             if (Player.Score >= 1000)
                 Application.LoadLevel (4);
             
             Destroy(gameObject);
             Enemy.c = false;
             
             
         }
     }
 }
 
                 Change line 27 to
if (transform.position.x + 5 >= myTransform.position.x)
Include the rest of alpaca's example code, not just parts of it. And consider he might have used the wrong variable name at some point. $$anonymous$$aybe you can think of a variable name that would make more sense at that place...
Your answer
 
             Follow this Question
Related Questions
Making a bubble level (not a game but work tool) 1 Answer
Spaceship movement with acceleration and deceleration on Unity 0 Answers
iTween MoveTo shoots off into distance 0 Answers
Objects not always Spawning At Correct Location 2 Answers
Why is Input.GetAxisRaw() not returning whole numbers when using a joystick? 1 Answer