2D Projectiles in Unity - Tutorial

Поделиться
HTML-код
  • Опубликовано: 16 дек 2024

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

  • @AliceEverglade
    @AliceEverglade 6 месяцев назад +6

    watching this at midnight was a bad idea. I actually got flashbanged by ur visual studio xD

  • @roberto1899
    @roberto1899 6 месяцев назад +10

    I think you have a good tutorial voice.

  • @g-han5565
    @g-han5565 6 месяцев назад +5

    Damn... This is the type of tutorial which interests me. A very unique and reusable system. I'll be waiting for more tutorials then...

  • @ECAKJ
    @ECAKJ 6 месяцев назад +4

    You read my mind! This looks awesome. I’ve always wanted you to make tutorials. I’m curious how you did this in hidden tactics, along with how you did the animations since there’s a lot of weapons on seperate sprites. I’m still somewhat of a beginner

  • @GarnetKane
    @GarnetKane 2 месяца назад

    Incredible tutorial - this was awesome, so well explained, paced everything. Loved it, thanks so much my friend! Easiest sub of my life. Appreciate it

    • @UnPawsGames
      @UnPawsGames  2 месяца назад

      Thanks a lot! You're welcome, I'm glad I could help 😊

  • @縁の翼
    @縁の翼 Месяц назад

    Such· a excellent video!!!!

  • @mitsuhagd
    @mitsuhagd 4 месяца назад +1

    I think you were a very good student at math

  • @ECAKJ
    @ECAKJ 6 месяцев назад +2

    Also curious how you change sprites on runtime. Like in Starve when you cut down trees or your last jam game with the plants growing

    • @UnPawsGames
      @UnPawsGames  6 месяцев назад +1

      You can serialize the sprite renderer and different sprites, then set the spriteRenderer.sprite at runtime whenever you need it !

    • @ECAKJ
      @ECAKJ 6 месяцев назад

      @@UnPawsGames sweet! Ill try to figure out how to do that. Thanks!

  • @EinfachMichii
    @EinfachMichii 6 месяцев назад +2

    Actuallly nice system. To improve it even further (performance wise), try to limit the amounts of scripts (MonoBehaviours). It might become pretty important, even in your game when you've got a insane amount of projectiles in the scene. Also think about Object Pooling, which is commonly used for systems like that. Great Job!

    • @ECAKJ
      @ECAKJ 6 месяцев назад

      yes object pooling would be a good addition for sure

    • @UnPawsGames
      @UnPawsGames  6 месяцев назад

      Yep object pooling would be a great addition ! Thanks for your comment 😁

  • @jutekpixel
    @jutekpixel 6 месяцев назад +1

    Really awesome :)

  • @isaacpapillon8098
    @isaacpapillon8098 6 месяцев назад +1

    I keep getting null reference exeption on every part of the code that reference the target but I set the target correctly I dont understand.

  • @ECAKJ
    @ECAKJ 6 месяцев назад +1

    Odds you can put the scripts in the description? I have no idea what Im doing wrong but I can not get it to work. I feel dumb, but trying to learn.

    • @UnPawsGames
      @UnPawsGames  6 месяцев назад

      I just added them ! I hope it helps :)

    • @ECAKJ
      @ECAKJ 6 месяцев назад

      @@UnPawsGames you’re the best! Thank you

  • @pixgamesstudio5884
    @pixgamesstudio5884 6 месяцев назад +1

    I can't seem to get it working when the enemies are moving

    • @UnPawsGames
      @UnPawsGames  6 месяцев назад

      What do you mean by not working ?

  • @avadakedavra-qz1dc
    @avadakedavra-qz1dc Месяц назад

    Can you make a tutorial for 3d isometric game?

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

    Hi ! Thanks for the tutorial its very nice but i have a problem the projectile stay on the position of the shooter, it seem that he as no target so i retry and retry but it's still doesn't work, can someone help me ?

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

      I usualy dont do that but i copy paste the scripts you put in the description but it dont work too

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

      Hi ! For more help, feel free to join my discord server (its in many of my video's decription). Peoplr there will be glad to help you :)

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

      @@UnPawsGames ok i'l join it thanks !

  • @albertcleetus7241
    @albertcleetus7241 2 месяца назад

    i can't join your discord, it showing my mailId is already registered while claim my account.

    • @UnPawsGames
      @UnPawsGames  2 месяца назад

      That's weird 🤔
      Did you try the link in my latest videos?

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

    Good tutorial. This does exactly what I needed and it's really easy to integrate into my object pooling. I had two issues that I had to correct though that weren't any fault of OP, just the way my game is already set up. The first was easy, if your arrow has a rigidbody on it, you might need to set it to static or kinematic. The second issue was a bit more strange, but you need to make sure that the projectile is facing right when it's at rotation 0,0,0. Mine isn't, so I needed to subtract 90 degree from the z-axis in the UpdateRotation method.
    private void UpdateProjectileRotation()
    {
    Vector3 projectileMoveDir = projectile.GetProjectileMoveDir();

    float angle = Mathf.Atan2(projectileMoveDir.y, projectileMoveDir.x) * Mathf.Rad2Deg;
    angle -= 90; // Adjust based on your arrow's initial orientation
    projectileVisual.transform.rotation = Quaternion.Euler(0, 0, angle);
    }

  • @ECAKJ
    @ECAKJ 6 месяцев назад

    how can I set a new target?

    • @UnPawsGames
      @UnPawsGames  6 месяцев назад

      You can do that through script! For example, find a new target using a detection method and replace the target in your script!

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

      @@UnPawsGames thanks! I have a detection method, I guess im still too much of a beginner. I don’t know how to replace the target in script. How did you learn programming so fast?

    • @UnPawsGames
      @UnPawsGames  5 месяцев назад +1

      @@ECAKJ You can go for : target = newTarget in you script, whenever your condition to change target is fulfilled.
      I'm full-time, so that gives me a lot of time to learn !

  • @Magma-uw7yo
    @Magma-uw7yo 4 месяца назад

    5:53,: I have no Ideas why but my arrow go at the speed of light, I need to decrease the speed. My code is correct :
    Projectile :
    private Transform target;
    private float moveSpeed;
    private float distanceToDestroy = 1f;
    private void Update()
    {
    Vector3 moveDirection = (target.position - transform.position).normalized;
    transform.position += moveDirection * moveSpeed;
    if(Vector3.Distance(transform.position, target.position) < distanceToDestroy)
    Destroy(gameObject);
    }
    public void Shoot(Transform target, float moveSpeed){
    this.target = target;
    this.moveSpeed = moveSpeed;
    }

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

      Dont't forget to *Time.deltatime your transform.position 😉

    • @Magma-uw7yo
      @Magma-uw7yo 4 месяца назад

      @@UnPawsGames still have the same problem, now it's in fixed position