Home > Mobile >  how can i move my gameobject in specific directional path in unity2D?
how can i move my gameobject in specific directional path in unity2D?

Time:04-19

i want my enemy to be move like this in this picture. How can i achieve this in unity 2d. This is the directional path

CodePudding user response:

There are numerous ways to achieve that. A good starting point is a state machine.

  • You have a state which decides in which direction you are currently moving.
  • After a certain time (or condition is met) you change the state.

sample code:

{
    private int state = 1; // 1 means moving down and right, 2 means moving up.
                           // you could also use an enum for this.
    private float time = 0; // how long the enemy is already moving in this direction

    void Update() {
        if (state == 1) {
            // move down right
            transform.position = transform.position   new Vector(1,-1,0) * Time.deltaTime;
        } else if (state == 2) {
            // move up
            // TODO
        }
        // Add additional states here...

        time  = Time.deltaTime; // track how long you are in this state
        
        // Change the condition here...
        if (time > TIME_MOVING_IN_SAME_DIRECTION) {
            time = 0; // reset time
            
            // set next state:
            if (state == 1) state = 2;
            else if (state == 2) state = 1;
            // Add additional changes between the states here if necessary
        }
    }
}
  • Related