Search code examples
c#unity-game-enginecoordinatesunity3d-2dtools

Move a whole enemy object to a new point


In my code I am trying to check if the player dodges the obstacle and the obstacle goes to the x position of -13 (offscreen). If it does than it should reappear coming in with a random x and y coordinate. I get no errors it just doesn't do the code properly as I intended. Here is my code:

using UnityEngine;
using System.Collections;

public class Obstacle : MonoBehaviour
{
   public GameObject sphere;
   public Vector2 velocity = new Vector2(-4f, 0f);
   public float x_range=0f;
   public float y_range=0f;

   // Use this for initialization
   void Start()
   {
       rigidbody2D.velocity = velocity;
   }

   void update()
   {
       if (transform.position.x < -13f)
       {
           //random x
           x_range=Random.Range(15,30);
           //random y
           y_range=Random.Range(-12,7);
           sphere.transform.position=new Vector3(x_range,y_range,transform.position.z);
        }
    }
}

Again not sure what the issue is. I am using Unity 2d, C#.


Solution

  • C# is case-sensitive, meaning that update and Update are not the same. Unity looks for a method called Update to call each frame, and your update method doesn't match.

    Just capitalize that U and you should be good to go!