Grid Based Movement in Unity

Поделиться
HTML-код
  • Опубликовано: 20 сен 2024
  • Learn how to use grid-based movement in unity!
    Get the starter project files at drive.google.c...
    Get my Complete 2D Platformer course at www.udemy.com/...
    Join GamesPlusJam 3 at itch.io/jam/ga...
    Don't forget to hit that like button and if you'd like to see more gaming goodness then subscribe for more!
    Support the show by pledging at / gamesplusjames
    And you can also find me on twitter and facebook!
    Twitter - / gamesplusjames
    Facebook - / gamesplusjames
    Outro music "Theme for Harold var 1" by Kevin McLeod - www.incompetech...
  • ИгрыИгры

Комментарии • 238

  • @Dezomm
    @Dezomm 4 года назад +67

    If anyone has problems with the OverlapCircles not working to block player movement into "illegal" places as defined by your colliders on the stopsMovement layer, try the following: In the grid object child "Colliders" (or whatever you named it) that you use for defining where colliders should be, make sure Composite Collider 2D has Geometry Type set to Polygons, **not** Outlines. At least that worked for me on Unity 2020.1.

    • @Taterzz
      @Taterzz 3 года назад +6

      thank you for this, i had this exact issue. i changed the style from outline to polygons during testing to fix it, but i should have looked here first and saved my ass like 2 hours of frustration.

    • @VerTheBonBonVoni
      @VerTheBonBonVoni 2 года назад

      @@Taterzz Same here.

    • @nunnyu
      @nunnyu 2 года назад +2

      You're a lifesaver man! How did this comment just pop up just as I messed it up lol

    • @LeandroAuzier
      @LeandroAuzier 2 года назад +1

      i almost got happy seeing this comment, however it didn't work in my case, only horizontally, if i press vertical keys the player pass through walls :(.... Unity 2021.3.5f

    • @shinkouhai919
      @shinkouhai919 2 года назад

      this a time-saving comment! thanks for the knowledge

  • @sykoo
    @sykoo 4 года назад +61

    Woop woop! This is fantastic! =D

    • @gamesplusjames
      @gamesplusjames  4 года назад +3

      Thanks Sam :)

    • @maruf16khan
      @maruf16khan 4 года назад +3

      Sykoooo! 😁😁

    • @se9979
      @se9979 4 года назад +1

      @@gamesplusjames hey, is it ok for you to give me a hand?

  • @Kurokage130
    @Kurokage130 4 года назад +11

    This video is simple in complexity, yet deep in depth.
    This type of content is exactly what people need, thus you're a hero and I thank you!!!

  • @thebadshave503
    @thebadshave503 4 года назад +82

    3:02 See when you say it, you're "game developer", when I say it I'm "A bad step-dad". Double standards.

    • @unity3dgamedevelopers954
      @unity3dgamedevelopers954 4 года назад

      Turn based strategy tutorial like Heroes of Might and magic
      udemy.com/course/turn-based-strategy-game-development/learn/lecture/21513708?start=0#overview

    • @SirDrasticG
      @SirDrasticG 3 года назад +2

      took me a while lmao

  • @thebadshave503
    @thebadshave503 4 года назад +13

    I've been watching your tutorials for a long time and I have to say you're getting really better at condensing concepts. Not that the the older tuts were bad. I learned a lot from them, but this format is really helpful.

  • @metall7331
    @metall7331 4 года назад +5

    The collision technique was really buggy for me so I placed four triggers around the character to detect obstacles instead. Thanks for the video!

    • @edgarlawrence9191
      @edgarlawrence9191 4 года назад

      hey bro, can i see your script of your four triggers? cause im newbie in the gameDev
      you can send me on my email edgarlawrence96@gmail.com
      much appreciatied :D

  • @admulberg
    @admulberg 4 года назад +34

    Great tutorial! Thank you
    Here is a slightly refactored version of the PlayerController script:
    public class PlayerController : MonoBehaviour {
    [SerializeField]
    private float speed = 5;
    [SerializeField]
    private Transform movePoint;
    [SerializeField]
    private LayerMask obstacleMask;
    void Start() {
    movePoint.parent = null; // Detach partent
    }
    void Update() {
    float movementAmout = speed * Time.deltaTime;
    transform.position = Vector3.MoveTowards(transform.position, movePoint.position, movementAmout);
    if (Vector3.Distance(transform.position, movePoint.position)

    • @sol15_
      @sol15_ 3 года назад

      What does [SerializeField] do

    • @_juliakp1_
      @_juliakp1_ 5 месяцев назад

      thank you!!

    • @farzbz987
      @farzbz987 15 дней назад

      @@sol15_ Already 3 years, I assume you already know it but, just in case, that does show you the values of a private and protected variable on the inspector so you don't have to change it on the code.

  • @noahborden7684
    @noahborden7684 2 года назад +3

    Protip you can adjust the tile size by multiplying the axis in movePoint.position by your tile size

  • @royvictorgagarin55
    @royvictorgagarin55 2 года назад +1

    this is the simplest grid movement I've ever watched so far. thank you :)

  • @thecoldlemonade3532
    @thecoldlemonade3532 3 года назад +1

    that felling when your code works first time is awesome

  • @Konslufius
    @Konslufius Год назад +1

    Awesome, you can also use that system in a reversed way to have a follower system. Every time I move, my character leaves a "token" which is tracked by my follower. The follower moves towards that token until he is on top of it. When I move again, the token's transform is equal to my current position and my follower moves towards that token again. I called the token "lastposition". Works surprisingly well.

  • @turkeyjerkey
    @turkeyjerkey 3 года назад +22

    Excellent tutorial, as always! Have you considered doing a tutorial on mouse-click based grid movement, with your movement range shown by highlighted tiles in your grid (e.g., for a turn-based game)? Even cooler if it also showed your attack range (e.g., for ranged or magic attacks). Thanks for all your excellent tutorials and courses (I've purchased 5 of them on Udemy)!

  • @krekk2751
    @krekk2751 4 года назад +3

    ok this was the best tutorial I have seen so far, clean and easy. Loved it.

  • @LordMaskin
    @LordMaskin 4 года назад +3

    I bought your Udemy for RPG's but this is really what I was looking for.

  • @IamDaveDev
    @IamDaveDev 10 месяцев назад

    Something I recommend is moving the overlapcircle check to be outside of the key check. Also put both x and y axis in the vector3.

  • @BeanDancing
    @BeanDancing 3 года назад +3

    Awesome! I'd been struggling to find a good tutorial on this! Very simple and concise but still very clear and informative!

  • @HaydenTheJayden
    @HaydenTheJayden 2 года назад

    Honestly one of the best tutorials I've watched

  • @khiemle6441
    @khiemle6441 Год назад

    Bro you're so good at explaining, what a rare gem

  • @tinboiter1414
    @tinboiter1414 2 года назад +2

    How come the grid size plays no role in this?

  • @himanshujangid5975
    @himanshujangid5975 3 года назад +1

    If you are facing the problem of Input Delay,
    Change Horizontal And Vertical Axis's Sensitivity to 10 and Gravity to 10 in
    Edit>Project Settings>Input Manager
    It will fix the issue

  • @MoonLiteNite
    @MoonLiteNite 4 года назад +6

    @2:00 so you totally skipped on how to create the moviePoint as a child under the player. it was just "ready" to go before you started making the video haha. In case anyone is wondering, right click on the left pane, "add object"

  • @thedude110
    @thedude110 4 года назад +4

    Could you make a video with more mechanics based on grid movement? Eg pushing and pulling objects that should also move on grid

    • @MoonLiteNite
      @MoonLiteNite 4 года назад

      What i am trying to do on my first go with unity, not having much luck :( I can easily force the object to move in a single direction, but i cant figure out a way to get the direction based on the side the object was triggered at.

  • @oicmorez4129
    @oicmorez4129 4 года назад +2

    Alright, that's a nice, easy and clean tutorial
    thanks for making my dreams easier

  • @SonicNKnux
    @SonicNKnux 2 года назад

    Fantastic work, you went into great detail at a comprehensive pace for others to follow along. That's not a common skillset; you're a great teacher!

  • @LobsterWithABagel1629
    @LobsterWithABagel1629 Год назад

    I Figured It out! If You are Struggling with this issue too, Create an empty Object called player, then attach the movepoint and sprite to it.

  • @WanderyenErin
    @WanderyenErin 2 года назад

    Oh I was looking exactly for this! Thanks for sharing!

  • @christorsss
    @christorsss 4 года назад

    The best explanation of if and else if. Thank you in advance!

  • @TriDeapthBear
    @TriDeapthBear 4 года назад +7

    4:38 could you instead do
    if (Input.GetAxisRaw("Horizontal") != 0f)
    Is that inefficient in any way? Because that's what I've been doing for a while :P nice tutorial though!

    • @gamesplusjames
      @gamesplusjames  4 года назад +6

      That'll work nicely on keyboard for sure but if using a controller it be a little overly sensitive :)

  • @ir3dyplayz78
    @ir3dyplayz78 4 года назад

    Thank you u finally made it!!! It's been killing me I I stop making my game cause I couldn't figure out grid based movement

  • @nanardeurlambda
    @nanardeurlambda 2 года назад

    8: 27 after having tried this movement system, I am now convinced there potential for a rage game here somewhere.

  • @TheToneBender
    @TheToneBender 4 года назад +3

    Crud... I'm also following Brackey's top down movement tutorial and now I can't figure out how to combine his code with this grid based code :l

    • @SoupCanMafia
      @SoupCanMafia 4 года назад

      I think that Brackey, as good as he is, does usually have his projects using pre-made assets. Like for my game engines class, I used a pre-made character controller asset to control the character. Though I am certain he has a video about grid-based movements, I'm uncertain if it's in the top-down series.
      At the moment, while I have basic experiences with coding, I can't necessarily help you. And the best advice I could give you is to cross-reference this video and the Brackeys video, see if you can rewire the code to make movement more grid-based.

  • @klibe
    @klibe 3 года назад

    Thanks man! I've been looking for this!

  • @KillerGameDev
    @KillerGameDev Год назад

    If I could add one little tidbit...I think after you check distance, you should reset player transform to the new expected transform. If you are truly doing a grid, you can see that every movement makes the character more and more off the grid. Especially if you are nit-picky and like to put the final transform at the bottom. I was like "no! he put...the transform...at the top!!!!!! Whyyyyy!? he did his figuring after he did the transform!!! whyyyyy!?!?!" which is okay I just ran into the issue where everytime I would hit the button, the character was a little more off the grid. Teleporting him after reaching an okay error offset helped and is unnoticeable to the user.

  • @viscarious1
    @viscarious1 4 месяца назад

    This was so helpful thank you!
    Have you had any luck getting this sort of movement in the "new" input version?

  • @nic54654
    @nic54654 4 года назад

    I recognize that voice! I did one of your platformer tuts a while back, awesome video btw, just what I needed, thanks! ;D

  • @DiegoTube85
    @DiegoTube85 4 года назад +2

    what if I want the hero to move only if he's facing the same direction of the input and just change direction standing still otherwise?

  • @gianlucabianchi2650
    @gianlucabianchi2650 4 года назад

    Love it! I'm happy that works in Isometric as well.

  • @evenaxin3628
    @evenaxin3628 2 года назад

    I made my own version of moveTowards, transform.position = (transform.position * moveSpeed + movePoint.position) / (1+moveSpeed); which I use because it's a bit smoother.

  • @fatboy2867
    @fatboy2867 4 года назад +6

    If I want the movement to be continuous like in pacman without needing to hold the key down, what do I need to change?

    • @unity3dgamedevelopers954
      @unity3dgamedevelopers954 4 года назад

      Turn based strategy tutorial like Heroes of Might and magic
      udemy.com/course/turn-based-strategy-game-development/learn/lecture/21513708?start=0#overview

    • @anomalocarissupremo3909
      @anomalocarissupremo3909 4 года назад

      set the input to a vector2 variable and only update the variable when the input is not (0, 0)

    • @se9979
      @se9979 4 года назад +1

      its probably not that but you could try "re-parenting" the movePoint

  • @Cvusmo
    @Cvusmo 4 года назад +3

    I'm using the new input system. I've managed to make my player move and be animated. The problem is he moves only one grid square left, right, up, or down, but won't move around the "map." I cant figure out the solution...

    • @gamesplusjames
      @gamesplusjames  4 года назад +4

      are you setting the transform.position using = instead of +=? Using += will add the new vector to your position but just using = will set the position directly as your input :)

    • @Cvusmo
      @Cvusmo 4 года назад +2

      gamesplusjames I was looking at operators and wondering if that would fix it haha. I knew it was something simple. Thanks man!

  • @stefan429
    @stefan429 3 года назад

    afaik mathf.abs is more expensive than just getting the inputs into a vector and normalizing it, great vid :)

  • @Muftaay
    @Muftaay 4 года назад +1

    very clear instructions and explanations. thank you!

  • @Zelager
    @Zelager 4 года назад +1

    Great tutorial, James! This was the first time I've done much with Unity and this was concise and easy to understand.

  • @craigmobey954
    @craigmobey954 4 года назад

    Exactly what I needed in nice digestible pieces!

  • @DT-hb3zu
    @DT-hb3zu 2 года назад +2

    This was amazing! Thank you for this. I do have a question as well; Is there a reason to use Vector3 over Vector2 in this case?

    • @michaelm.7728
      @michaelm.7728 2 года назад

      It looks like most of transform.position and movePoint.position require a Vector3

  • @AlexKidmann
    @AlexKidmann Год назад

    Thanks so much for the help, your video is very clear and well explained ! :D

  • @LordMaskin
    @LordMaskin 4 года назад +2

    I would love to know how to do this and interact with objects using unity's Isometric maps. I keep trying to detect objects using 2dRayCast but it never seems to work very well.

  • @digis_monkey_king
    @digis_monkey_king 2 года назад

    Like always, great explanation! very easy to understand and interesting...

  • @general_md
    @general_md 4 года назад +1

    How can i make the player that it continuously moves till it collides or another key is pressed but only turning at a grid?

  • @legitchrisv
    @legitchrisv 4 года назад +3

    Great video! So, what if we don't want the user to hold down movement, rather, they're limited to one tile movement per press similar to rogue-likes?

    • @gamesplusjames
      @gamesplusjames  4 года назад +2

      you could store the inputs in a variable and then check that when you're pressing input that it doesn't match what was pressed on the previous frame

    • @BenBonk
      @BenBonk 4 года назад +12

      For anyone stumbling across this comment and wanting a solution to this I would recommend making a bool that needs to be true whenever you move and every time you move start a co-routine setting that variable to false, then using WaitForSeconds() and put in the time you wan't to have between inputs, and then set it to true. This was a very easy solution to implement for me.

    • @lilsquid8880
      @lilsquid8880 4 года назад

      That’s actually a good idea I’m going to use that

  • @jonasmyhrrefseth5720
    @jonasmyhrrefseth5720 4 года назад +7

    You should probably use something like git, instead of a Zip hosted on Google Drive. Github is free.

  • @NightRunStudio
    @NightRunStudio 3 года назад

    So helpful. Thanks for the great videos.

  • @yogamike406
    @yogamike406 4 года назад

    This is exactly what I needed! Thank you so much :)

  • @てくまやまなこん
    @てくまやまなこん 4 года назад

    this video is just what I wanted to learn. thanks!

  • @hillelywood5118
    @hillelywood5118 Год назад

    i keep getting this error "The variable movePoint of Player has not been assigned.
    You probably need to assign the movePoint variable of the Player script in the inspector." and i have no idea what im supposed to do

  • @babasheep2828
    @babasheep2828 2 года назад +1

    Hey i have an issue. The collisions are only working on the X axis, not the Y, so I cant go through the side borders, but I can go through the top and bottom ones. Any ideas?

  • @MarceloCSC
    @MarceloCSC 4 года назад +1

    Extremely helpful and to the point tutorial, thanks a lot!!
    Can someone just please help me understand WHY does this work?? I mean, I followed the whole thing and it works like a charm, I just can't wrap my head around WHY it's actually working and the character is never landing outside the grid.
    Thanks in advance!

    • @fregyt
      @fregyt 4 года назад

      It's set to move a specific distance and new movement cannot be requested until that requested movement has been completed. This limits the ability to move diagonally as well, as it is only allowed to execute one movement direction at a time. Here is an order of operations for you:
      The movepoint teleports to a location that's specifically in the centre of a grind square.
      The Player sprite moves toward the movepoint
      When the player sprite and the movepoint have the same x, y values, a new movement for the movement can be done, restarting the cycle.
      Hope this made sense

  • @danielpereira6660
    @danielpereira6660 4 года назад

    Inspired by Hopia Tale on mobile? I just found that game last week and this is what the entire game is based around. Cool tutorial might try it out later.

    • @gamesplusjames
      @gamesplusjames  4 года назад

      It's more inspired by classic RPG movement :) Can't say I've heard of Hopia Tale unfortunately :)

  • @hernandeztorresederjairdej5564
    @hernandeztorresederjairdej5564 3 года назад

    If you are having problems with the collisions, try to save the input axis value into variables and then use them in the rest of the code
    //transform.position = Vector3.MoveTowards(transform.position, MovePoint.position, MoveSpeed * Time.deltaTime);
    float horizontalInputValue = Input.GetAxisRaw("Horizontal");
    float verticalInputValue = Input.GetAxisRaw("Vertical");
    //if (Vector3.Distance(transform.position, MovePoint.position)

  • @austinsehgal8683
    @austinsehgal8683 3 месяца назад

    Excuse me, what template did you use to creating this project @gamesplusjames ?

  • @8Blits
    @8Blits 4 года назад +5

    Love the tutorial!

  • @fv4202x
    @fv4202x 4 года назад

    thanks so much i thought its impossible lol. i think that movePoint event is a so genious idea.

  • @NTC
    @NTC 3 года назад

    awesome, can u please do a series of Unity for beginners? you have great teaching skills

  • @gustavofelix257
    @gustavofelix257 2 года назад

    Excellent explanation. You are Amazing

  • @adammickiewicz7818
    @adammickiewicz7818 Год назад

    Helpful as always, thanks a lot!

  • @neisef
    @neisef 3 года назад

    Sorry for not knowing but what is the Player Move Point exactly? Is it a sprite? An empty 2d object? I don't know what to click on Unity to make one.

  • @feliscape
    @feliscape 2 года назад

    For some reason the movePoint still gets moved when theres an obstacle ahead. I did add a rigidbody and collider to it because I wanted gravity and otherwise it didn't work well.

  • @Phenix2663
    @Phenix2663 3 года назад

    serious life saver been searching for this for abit i am terrible with code XD

  • @shakenbake6773
    @shakenbake6773 4 года назад +1

    This is such a great tutorial, exactly what i was looking for, thank you! I have a question though. How did you pull the player sprite out of that sprite sheet? I was trying to slice out the blue guy but then i messed up all my tiles. It seems like i can only get it to slice by 16x16 squares, but somehow in your project i get all the 16x16 tiles AND a 18x26 player?

  • @LobsterWithABagel1629
    @LobsterWithABagel1629 Год назад

    How can I make the player's head not collide with anything

  • @daynger8085
    @daynger8085 11 месяцев назад

    Great tutorial! question about the no-diagonal script: If I wanted to make it so that horizontal movement does not take precedence over vertical movement or vice versa how would you do it? I'm trying to make an rpgMaker style game where your most recent input is the one that takes priority Thanks!

  • @EvanOdson
    @EvanOdson 4 года назад +1

    I am able to get the grid based movement going, and I am now on the step of animating. I am working on a Pokemon clone with this tutorial, so I want an animation going left, right, up, and down. Since this code is a bit complicated, I'm not quite sure how to tell the animator to play a walking left animation when I'm pressing left. Any advice would be much appreciated. Fantastic tutorial! :)

    • @tclowe9280
      @tclowe9280 4 года назад

      I had the same issue for a few days, what I ended up doing was watching some of his other videos, and adapted that animation system, and one that Brackeys(? maybe?). Basically it takes your input and turns that into something you can then put into the unity Animator blend tree. His tutorial used a bool for transition between idle and moving, and I had a 4 direction idle, so I just sent over the data and set a movement threshold I think. I'm really new at this so I'm sure there are a dozen better ways of doing this, but this is what I got to work for me.
      using System.Collections;
      using System.Collections.Generic;
      using UnityEngine;
      public class TileMovement : MonoBehaviour
      {
      public float moveSpeed = 5f;
      public Transform movePoint;
      public LayerMask whatStopsMovement;
      public Animator animator;
      //private bool playerMoving;
      private Vector2 lastMove;
      private Rigidbody2D myRigidBody;
      Vector2 movement;
      // Start is called before the first frame update
      void Start()
      {
      movePoint.parent = null;
      myRigidBody = GetComponent();
      DontDestroyOnLoad(transform.gameObject);
      }
      // Update is called once per frame
      void Update()
      {
      //playerMoving = false;
      transform.position = Vector3.MoveTowards(transform.position, movePoint.position, moveSpeed * Time.deltaTime);
      if (Vector3.Distance(transform.position, movePoint.position)

  • @matthewfiorentino4727
    @matthewfiorentino4727 4 года назад +2

    My movepoint keeps getting "trapped" by the various colliders on my map - can anyone help? Is it possible I've set the tilemap colliders up wrong? I'm using edge colliders for my map boundaries, but the movepoint seems to pass beyond the boundary even though the player doesn't pass beyond the collider, but since the movepoint is outside, it gets "hooked" there and can't come back into the safe zone.
    The tilemap colliders also seems to interpret the shape of the pixel object rather than creating a box the size of a tile, and it creates narrow spaces where the player can't pass. For example, a bed in a room takes up one tile + a little bit of the tile above it and a little bit of the tile below it. So depending on the buffer I set, either I can't access the tiles above and below it at all, or the movepoint gets hooked into the bed collider. Not sure if this makes sense...

    • @tixa4651
      @tixa4651 3 года назад

      I had the same problem, but u asked it 6 months ago and no answer :(

    • @Amine-dlmr
      @Amine-dlmr 2 года назад

      @@tixa4651 2 years

  • @gadgetboyplaysmc
    @gadgetboyplaysmc 4 года назад

    Thanks for the tutorial james! One question.
    What's the difference between Input.GetAxisRaw and Input.GetAxis?
    I looked at the docs but I'm not exactly the most literate person so I want to clarify.
    Does Raw mean it gives you ONLY -1 and 1
    while GetAxis gives you floating point values like 0.98892?
    Also... will this still work if the sprites are scaled up?

    • @fregyt
      @fregyt 4 года назад +1

      The GetAxisRaw is the raw input value from the input, no smooting. The GetAxis is slightly smoothed, which is not wanted in this case.

  • @williamtoscani
    @williamtoscani 4 года назад

    Really great video, it's what i was searching for!
    Could you make a video about enemy player find system?

  • @SimpSimpleton
    @SimpSimpleton 3 года назад

    for some reason the animations aren't working for me. it freezes while the button is being held.

  • @oystercam1040
    @oystercam1040 3 года назад +1

    hi, can you plz do a video showing how to do a board game on unity, where can the character choose to go or not to the other way? like a square with a line on de midle where they walk on it based on a dice movement..it would be really amazing ;v;

  • @Ryöken17
    @Ryöken17 2 месяца назад

    Can't you have it only when the Key is Down ?

  • @durbanpoison8831
    @durbanpoison8831 4 года назад

    Awesome tutorial! Thank you!

  • @CentarPede1
    @CentarPede1 2 года назад

    Hello, new programmer here.
    Quick question, how would you get the game object of the obstacles (things that stop your movement) if you wanted to be able to destroy them or something?
    Thanks!

  • @tetelp7656
    @tetelp7656 3 года назад

    Thankl you a lot bro your videos are great!

  • @ticketforlife2103
    @ticketforlife2103 2 года назад

    How to implement this, but make the character slide the tiles until it hits an obstacle?

  • @るちゃんまあ
    @るちゃんまあ 2 года назад

    I'd like to download your assets. It looks like no more upload

  • @ms1-Alex
    @ms1-Alex 12 дней назад

    8:57 my character still moves blazing fast
    Why?

  • @LobsterWithABagel1629
    @LobsterWithABagel1629 Год назад

    I need help with the head, I don't want the head to collide with objects. Does anybody know how to fix this?

  • @megamiana-spaceforcecomman705
    @megamiana-spaceforcecomman705 Год назад

    "UnassignedReferenceException: The variable movePoint of PlayerControl has not been assigned."

  • @PrincessPotion
    @PrincessPotion 3 года назад

    Super useful, thank you so much! One question that I had though. I set up the LayerMask for the tilemap colliders and that works beautifully. I was wondering if I could do similar for a non-tilemap layer, such as enemies so the player can't move through them too? I tried adding an Enemy layer to the mask in the inspector and setting the enemies to that layer; however, the player still walks through them but is still blocked by the tilemap colliders correctly. Any ideas?

  • @navelak
    @navelak 3 года назад

    awesome! thanks man, excellent job

  • @soma3582
    @soma3582 Год назад

    How i can use the movement for enemy

  • @nunfununcia
    @nunfununcia 4 года назад

    I have a probably stupid problem, my player does not move to the last square to the right or down, it is as if a phantom square is preventing movement, to the right and upwards it moves normally. Can someone tell me where the problem is? I'm using version 2020.1.0f1 of unity + visual studio code.

  • @ir3dyplayz78
    @ir3dyplayz78 3 года назад

    I just realized something... If I want to add a dash to my character I'm going to have to mess around with the functionality of my move point correct or did I miss something?
    Please respond

  • @darealspawn
    @darealspawn 3 года назад

    How would an enemy use this grid movement to walk around

  • @SyreniteyGaming
    @SyreniteyGaming 4 года назад

    How come the speed variable doesn't seem to affect my characters speed? No matter what its set to it just flys around the tilemap

  • @danielleanderson6371
    @danielleanderson6371 Год назад

    I rewrote Update() to prevent "corner-cutting" on diagonal movement, so your character can properly walk around walls instead of phasing through them like a ghost:
    void Update()
    {
    transform.position = Vector3.MoveTowards(transform.position, movePoint.position, moveSpeed * Time.deltaTime);
    if (Vector3.Distance(transform.position, movePoint.position)

  • @chasebrackett2883
    @chasebrackett2883 3 года назад

    I'm having an issue that Writing "public Transform movePoint;" isn't making a child object... or any object at all... could someone please help me?

  • @ironphan24
    @ironphan24 2 года назад

    Excellent! Thanks so much :)

  • @user-rp8vl5jl9c
    @user-rp8vl5jl9c 4 года назад

    How could I visualize the radius of the circle which is checking ahead for other colliders ?

  • @benoitmenard1759
    @benoitmenard1759 4 года назад

    So the player works flawlessly. Colliders and all. I have also implemented enemies that move based off the players choice. Basically direct opposite inputs with a few select cases where it needs to do something special due to colliders around them. However it stacks on top of other enemies. Even though I created a 2nd layermask for the enemy with an additional !physics2d movepoont check for anything on the enemy layer. But it ignores it. I've tried setting the collider to the enemy parent, movepoint or sprite. And regardless it seems to think that the square is available if both are looking at the same "empty" tile.
    I believe it refuses to go to one thats already taken. But not one about to be taken.
    How can I work around that?

  • @stardust4089
    @stardust4089 3 года назад +1

    What art assets is this project using?

  • @northrop_
    @northrop_ 4 года назад

    How would a simple turn manager for movement work? One that let's a player take a turn and then lets all enemies take their turns.

    • @northrop_
      @northrop_ 4 года назад +1

      The answer is: Event system