2D Shooting | Unity Tutorial (Two Types of Projectiles!)

Поділитися
Вставка
  • Опубліковано 25 лис 2024

КОМЕНТАРІ • 33

  • @meowl9329
    @meowl9329 Рік тому +1

    I love these!
    Would want to see you cover the system part, like game saving, data structure, handling multiple scenes etc.

    • @sasquatchbgames
      @sasquatchbgames  Рік тому +3

      thanks! Already had two of those on my future list ;)

  • @Ramesss
    @Ramesss 8 місяців тому

    AMAZING !!!! You saved me for my Second Semester project love you

  • @capilover1023
    @capilover1023 10 місяців тому +1

    Have you thought about doing a tutorial on the weapon system? Switching between weapons, maybe adding UI icons, etc.

  • @Notreal76
    @Notreal76 Рік тому

    Clear and comprehensible. Thank you!

  • @midniteoilsoftware
    @midniteoilsoftware Рік тому

    2 time-saving tips: edit the script template so it doesn’t include all the boiler plate code you always remove anyway and there is a setting under preferences to create objects at origin so you don’t need to reset the transform every time you create a new GameObject.

    • @sasquatchbgames
      @sasquatchbgames  Рік тому +1

      those are 2 things I've been procrastinating lol. Thanks for the tip, I'm going to have to do both of those

  • @midniteoilsoftware
    @midniteoilsoftware Рік тому

    A much simpler solution for handling collisions is to just use the collision matrix in the physics settings. That negates the need for any code.

  • @aazhisekar91
    @aazhisekar91 3 місяці тому

    All of your videos are super helpful and very concise. Thank you

  • @mansimoe319
    @mansimoe319 8 місяців тому

    Genuinely insane

  • @apollodavis4090
    @apollodavis4090 Рік тому

    Love your devlogs

  • @midniteoilsoftware
    @midniteoilsoftware Рік тому +1

    A cool follow-up video would be how to use ScriptableObjects for bullet types.

  • @chadmoberly7044
    @chadmoberly7044 Рік тому

    Super helpful!

  • @grassbash
    @grassbash 2 місяці тому

    There is one thing that I need help with. When I rotate my gun, it has a weird pivot to it and it doesn't stay in its assigned spot. Please help!

  • @lfmsmka
    @lfmsmka 3 місяці тому

    i have an issue with the layer mask

  • @capilover1023
    @capilover1023 10 місяців тому

    Please update the lesson for perspective camera! It seems to mess up your code

  • @nickrhyswarren
    @nickrhyswarren Рік тому

    Hi there! Great tutorial as always. I've implemented this after doing the Hollowknight style camera tutorial which took a bit of figuring out as it effected the rotation of the gun (if anyone wants help just ask). The multiple cameras caused problems.
    I am trying to modify this to suit my game. I have an ability system with upgrades and have tried to add a multishot upgrade, but its a bit buggy at the moment, it shoots three bullets at once in an arc but the extra two just shoot sideways :( I used Quaternion.Euler in the Instanciation of the bullet to be able to change its y axis rotation but that hasn't worked.
    I'm also struggling with trying to flip the character when rotating the gun past 90/-90 degrees like the gun. The player movement and jumping is turned off and the attack ability is turned on as well as the gun when holding down the attack button. The player can flip when aiming past 90/-90 degrees like the gun however, when exiting the attack (Releasing attack button), if the player is facing left it messes up the flip function of the player so that he is facing the wrong way when moving. I'm sure ill figure it out, but if anyone has a good solution for flipping the character I'd appreciate the help!

  • @CyberAngel67
    @CyberAngel67 Рік тому

    I would argue that as you are setting the transform right to the velocity it doesn't need to be done inside a FixedUpdate.

    • @sasquatchbgames
      @sasquatchbgames  Рік тому

      just gave it a shot in Update, and it produced weird janky movement. Definitely works best in FixedUpdate

    • @CyberAngel67
      @CyberAngel67 Рік тому

      @@sasquatchbgames Then you did it wrong

  • @Teles0704
    @Teles0704 7 місяців тому

    my bullet is being destroyed when it spanws, what can i do?

  • @suzyeon4222
    @suzyeon4222 8 місяців тому

    when I rotate, the gun rotates in the wrong direction. Please help

    • @suzyeon4222
      @suzyeon4222 8 місяців тому

      i mean the sprite rotates in the right direction but when im facing left side it's the opposite direction. sorry my English is bad

    • @lancerdev2391
      @lancerdev2391 5 місяців тому

      @@suzyeon4222 Hi, I had the same problem and came up with a simple solution.
      Instead of flipping my player, I flip the sprite.
      Next, in my gun script, i modified this :
      float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg;
      Vector3 localScale = new Vector3(1f, 1f, 1f);
      Vector3 localPos = gun.transform.localPosition;
      if(angle > 90 || angle < -90)
      {
      localScale.y = -1f;
      localPos.x = -1f;
      } else
      {
      localScale.x = 1f;
      localPos.x = 1f;
      }
      gun.transform.localScale = localScale;
      gun.transform.localPosition = localPos;
      If flips the gun depending on the facing direction of the sprite of the player.
      Hope this helps !

  • @tei_the_boy2367
    @tei_the_boy2367 14 днів тому

    This tutorial just didn't really work there was multiple issues.

  • @Coco-gg5vp
    @Coco-gg5vp Рік тому +1

    First

  • @y0_0go
    @y0_0go Рік тому

    At 5:45, you could have just used gun.transform.localEulerAngles.z instead of rotation. Correct me if I am wrong.
    In the end, you use interface and grab a reference to that instead of grabbing enemy script. The reason you say is because there are other objects that get destroyed by bullet. But, you wouldn't add enemy script on other objects. Right ?. So only enemy gets to have enemy script and you don't need an interface there.
    Really loved your video

  • @midniteoilsoftware
    @midniteoilsoftware Рік тому

    A more concise syntax is if (collision.gameObject.TryGetComponent(out var damageable)) …