- Home /
Question by
SmashingSuccess · Dec 14, 2014 at 10:04 PM ·
dashrelative positionsimple fix
Dashing relative to the player
The transform keeps moving the player to a spot around the origin instead of relative to the player. This seems like a simple fix, but for the life of me I can't find it.
#pragma strict
var moveLeft : KeyCode;
var moveRight : KeyCode;
var moveJump : KeyCode;
var moveDown : KeyCode;
var dashToggle : KeyCode;
var dashMax : float = 2;
var dashCharges : float = 2;
var dashDistance : float = 20;
var JumpHeight : float = 20;
var speed : float = 10;
private var isFalling = false;
function Update ()
{
if (Input.GetKeyDown(moveJump) && isFalling == false && !(Input.GetKey(dashToggle)))
{
rigidbody2D.velocity.y = JumpHeight;
isFalling = true;
}
if (Input.GetKey(moveRight))
{
rigidbody2D.velocity.x = speed;
}
else if (Input.GetKey(moveLeft))
{
rigidbody2D.velocity.x = speed *-1;
}
else
{
rigidbody2D.velocity.x = 0;
}
if(Input.GetKey(dashToggle) && Input.GetKeyDown(moveJump) && dashCharges >=1)
{
rigidbody2D.transform.localPosition = Vector2(0,dashDistance);
dashCharges -= 1;
}
if(Input.GetKey(dashToggle) && Input.GetKeyDown(moveLeft) && dashCharges >=1)
{
rigidbody2D.transform.localPosition = Vector2(dashDistance,0);
dashCharges -= 1;
}
if(Input.GetKey(dashToggle) && Input.GetKeyDown(moveRight) && dashCharges >=1)
{
rigidbody2D.transform.localPosition = Vector2(dashDistance,0);
dashCharges -= 1;
}
if(Input.GetKey(dashToggle) && Input.GetKeyDown(moveDown) && dashCharges >=1)
{
rigidbody2D.transform.localPosition = Vector2(0,-dashDistance);
dashCharges -= 1;
}
}
Comment
Answer by SmashingSuccess · Dec 14, 2014 at 11:09 PM
Nevermind. I solved my own problem by changing it to:
#pragma strict
var moveLeft : KeyCode;
var moveRight : KeyCode;
var moveJump : KeyCode;
var moveDown : KeyCode;
var dashToggle : KeyCode;
var dashMax : float = 2;
var dashCharges : float = 2;
var dashDistance : float = 20;
var JumpHeight : float = 20;
var speed : float = 10;
private var isFalling = false;
function Update ()
{
if (Input.GetKeyDown(moveJump) && isFalling == false && !(Input.GetKey(dashToggle)))
{
rigidbody2D.velocity.y = JumpHeight;
isFalling = true;
}
if (Input.GetKey(moveRight))
{
rigidbody2D.velocity.x = speed;
}
else if (Input.GetKey(moveLeft))
{
rigidbody2D.velocity.x = speed *-1;
}
else
{
rigidbody2D.velocity.x = 0;
}
if(Input.GetKey(dashToggle) && Input.GetKeyDown(moveJump) && dashCharges >=1)
{
rigidbody2D.transform.position.y += dashDistance;
dashCharges -= 1;
}
if(Input.GetKey(dashToggle) && Input.GetKeyDown(moveLeft) && dashCharges >=1)
{
rigidbody2D.transform.position.x -= dashDistance;
dashCharges -= 1;
}
if(Input.GetKey(dashToggle) && Input.GetKeyDown(moveRight) && dashCharges >=1)
{
rigidbody2D.transform.position.x += dashDistance;
dashCharges -= 1;
}
if(Input.GetKey(dashToggle) && Input.GetKeyDown(moveDown) && dashCharges >=1)
{
rigidbody2D.transform.position.y -= dashDistance;
dashCharges -= 1;
}
}
Your answer
![](https://koobas.hobune.stream/wayback/20220613174044im_/https://answers.unity.com/themes/thub/images/avi.jpg)