I love the fact you explain what every line does at the end. This makes it clear to me as a total noob exactly what line does what so that I can implement those lines in other methods I'm making. Thank you!
Alright, subscribing. Your tutorials are very chill. Thanks so much! Sometimes I over-complicate things, so when I see a guide like this it helps me to comprehend other ways I can accomplish the same thing.
If you still want to know Use public InputActionReference actionKey; And then in the if statement you’ll do this If(actionKey.action.triggered) This will act like KeyCode Key, but you will be able to select the input action you created
Hey so I tried adapting the tutorial without the shooting mechanic. I used the movement script and it worked but when I tried to implement the dash my character didn’t move anymore and the dash didn’t work either. Unity also didn’t recognise the KeyCode Term. Any help would be appreciated! :]
My dash speed variable roesnt make me go faster, its the only thing that doesnt work, no matter what i do it stays constant, i coppied everythign down exactly from this video cause i was so frustrated and it still dont work, maybe its clashign with my other movement code but idk
I solved it with changing my character movement function to function rb.MovePosition and dashing with increasing value of the speed. Like rb.MovePosition(rb.position+direction.normalized * speed * Time.fixedDeltaTime); // when player is dashing, speed = dashSpeed, after dash time ends speed = defaultSpeed Also it can be done with rb. velocity for both but in my case i did not solve that in a way that gives player little control while dashing. MovePosition method is easier, just increase the speed while dash time is not ended
@@Unknown-nv9so I solved it with changing my character movement function to function rb.MovePosition and dashing with increasing value of the speed. Like rb.MovePosition(rb.position+direction.normalized * speed * Time.fixedDeltaTime); // when player is dashing, speed = dashSpeed, after dash time ends speed = defaultSpeed Also it can be done with rb. velocity for both but in my case i did not solve that in a way that gives player little control while dashing. MovePosition method is easier, just increase the speed while dash time is not ended
The rb isnt speeding up Ive been trying to fix it but i have no idea what is wrong please help. using System.Collections; using System.Collections.Generic; using System.Xml.Serialization; using Unity.VisualScripting; using UnityEditor.Callbacks; using UnityEngine; public class MovmentScript : MonoBehaviour { [SerializeField] private TrailRenderer tr; [SerializeField] public Rigidbody2D rb; [SerializeField] float movespeed = 5f; Vector2 moveDirection; Vector2 mousePosition; [SerializeField] float dashSpeed = 10f; [SerializeField] float dashDuration = 1f; [SerializeField] float dashCooldown = 1f; bool isDashing = false; // Update is called once per frame void Update() {
When i press the shift key the only thing that happens it the rb moves in the right direction but will stay the same as the movespeed no matter how much i increase the dashspeed.
It works fine for me, but I can't run the dash diagonally when I press the up-left and down-right keys, but it works when I press up-right and down-left. Does anyone know why this happens?
Idk but I have notice that if you collide with something like enemies of walls when you dash the player rotates like crazy how do I fix that? And hey any Idea how to put a cooldown GUI for this?
I love the fact you explain what every line does at the end. This makes it clear to me as a total noob exactly what line does what so that I can implement those lines in other methods I'm making. Thank you!
Love the simplicity, only 7 lines of code 🤯 like Bmo says, it’s fun to go fast 💨
Alright, subscribing. Your tutorials are very chill. Thanks so much!
Sometimes I over-complicate things, so when I see a guide like this it helps me to comprehend other ways I can accomplish the same thing.
Glad you are back!
oh my this is so.... love it dude
Yasssss bmo is back 👏 👏 👏
This methods seems hard to to implement in the new input system, do you have any suggestions?
If you still want to know
Use public InputActionReference actionKey;
And then in the if statement you’ll do this
If(actionKey.action.triggered)
This will act like KeyCode Key, but you will be able to select the input action you created
Hey so I tried adapting the tutorial without the shooting mechanic. I used the movement script and it worked but when I tried to implement the dash my character didn’t move anymore and the dash didn’t work either. Unity also didn’t recognise the KeyCode Term. Any help would be appreciated! :]
What input system are you using? The new input system doesn't use the .keycode fuction.
Don't mind but CAN I ASK THAT WHY ARE YOU NOT AN ANGEL, BRO KNOWS EVERTHING. THX SOSOSOSOSOSOSOSOSOSOS Much
My dash speed variable roesnt make me go faster, its the only thing that doesnt work, no matter what i do it stays constant, i coppied everythign down exactly from this video cause i was so frustrated and it still dont work, maybe its clashign with my other movement code but idk
PLEASE HELP ME BMo IM GOING INSANE TRYING TO FIX THIS BUT BOTHING WORKS
Have you gotten it fixed yet
@@Unknown-nv9so nope. Gave up on fixing that nd decided to do sum else, sorry
I solved it with changing my character movement function to function rb.MovePosition and dashing with increasing value of the speed.
Like
rb.MovePosition(rb.position+direction.normalized * speed * Time.fixedDeltaTime); // when player is dashing, speed = dashSpeed, after dash time ends speed = defaultSpeed
Also it can be done with rb. velocity for both but in my case i did not solve that in a way that gives player little control while dashing. MovePosition method is easier, just increase the speed while dash time is not ended
@@Unknown-nv9so I solved it with changing my character movement function to function rb.MovePosition and dashing with increasing value of the speed.
Like
rb.MovePosition(rb.position+direction.normalized * speed * Time.fixedDeltaTime); // when player is dashing, speed = dashSpeed, after dash time ends speed = defaultSpeed
Also it can be done with rb. velocity for both but in my case i did not solve that in a way that gives player little control while dashing. MovePosition method is easier, just increase the speed while dash time is not ended
The player isn't stopping once the duration is over for me, just continuing to slide.
Lovely ❤👍
The rb isnt speeding up Ive been trying to fix it but i have no idea what is wrong please help.
using System.Collections;
using System.Collections.Generic;
using System.Xml.Serialization;
using Unity.VisualScripting;
using UnityEditor.Callbacks;
using UnityEngine;
public class MovmentScript : MonoBehaviour
{
[SerializeField] private TrailRenderer tr;
[SerializeField] public Rigidbody2D rb;
[SerializeField] float movespeed = 5f;
Vector2 moveDirection;
Vector2 mousePosition;
[SerializeField] float dashSpeed = 10f;
[SerializeField] float dashDuration = 1f;
[SerializeField] float dashCooldown = 1f;
bool isDashing = false;
// Update is called once per frame
void Update()
{
if (isDashing == true)
{
return;
}
float verticalInput = Input.GetAxis("Vertical");
float horizontalInput = Input.GetAxis("Horizontal");
moveDirection = new Vector2 (horizontalInput, verticalInput).normalized;
mousePosition = Camera.main.ScreenToWorldPoint(Input.mousePosition);
if (Input.GetKeyDown(KeyCode.LeftShift))
{
StartCoroutine(Dash());
}
}
private void FixedUpdate()
{
rb.velocity = new Vector2(moveDirection.x * movespeed, moveDirection.y*movespeed);
Vector2 aimDirection = mousePosition - rb.position;
float aimAngle = Mathf.Atan2(aimDirection.y, aimDirection.x)*Mathf.Rad2Deg -90f;
rb.rotation = aimAngle;
}
private IEnumerator Dash()
{
isDashing =true;
rb.velocity = new Vector2(moveDirection.x * dashSpeed , moveDirection.y * dashSpeed );
yield return new WaitForSeconds(dashDuration);
isDashing = false;
Debug.Log ("speed applied");
}
}
When i press the shift key the only thing that happens it the rb moves in the right direction but will stay the same as the movespeed no matter how much i increase the dashspeed.
It works fine for me, but I can't run the dash diagonally when I press the up-left and down-right keys, but it works when I press up-right and down-left. Does anyone know why this happens?
this is happening to me too, but only with up left and only on the arrow keys, works fine for wasd
Idk but I have notice that if you collide with something like enemies of walls when you dash the player rotates like crazy how do I fix that? And hey any Idea how to put a cooldown GUI for this?
you probably figured this out but im pretty sure you have to check “freeze rotation” in the rigidbody settings ?
We all know it should've been the red knight in the thumbnail
Can you use character controller?
is having a coroutine in update not seen as a bad idea?
Why would it be?
"PromoSM" 😉