- Home /
If Loop For Key Press works but not for Mouse
function MouseMovement(){
if(Input.GetMouseButton(0)){
distance = Vector2.Distance(mainCam.main.ScreenToWorldPoint(Input.mousePosition), transform.position);
mouseToWorld = mainCam.main.ScreenToWorldPoint(Input.mousePosition);
target = mouseToWorld;//get Mouse location
target.y = transform.position.y;
if(mouseToWorld.x > (transform.position.x)){
transform.localScale = new Vector3(-1f,1f,1f);
myAnimator.SetBool("ClickWalkRight", true);//Turns animation on
GameObject.FindGameObjectWithTag("Torso").GetComponent(SpriteRenderer).sprite = Resources.Load("Sprites/" + item.itemName + "Side", Sprite);
//Debug.Log("Right");
}
else if(mouseToWorld.x < (transform.position.x)){
transform.localScale = new Vector3(1f,1f,1f);//facing Left
myAnimator.SetBool("ClickWalkLeft", true);//Turns animation on
GameObject.FindGameObjectWithTag("Torso").GetComponent(SpriteRenderer).sprite = Resources.Load("Sprites/" + item.itemName + "Side", Sprite);
//Debug.Log("Left");
}
}
else{
myAnimator.SetBool("ClickWalkRight", false);
myAnimator.SetBool("ClickWalkLeft", false);
//GameObject.FindGameObjectWithTag("Torso").GetComponent(SpriteRenderer).sprite = Resources.Load("Sprites/" + item.itemName, Sprite);
}
}
function KeyMovements(){
if (Input.GetKey(moveLeft)){
useMouse = false;
//rigidbody2D.velocity.x = speed * -1;
transform.Translate(-Vector2.right * speed * Time.deltaTime);
transform.localScale = new Vector3(1f,1f,1f);//facing Left
myAnimator.SetBool("WalkToggleOnLeft", true);//Turns animation on
GameObject.FindGameObjectWithTag("Torso").GetComponent(SpriteRenderer).sprite = Resources.Load("Sprites/" + item.itemName + "Side", Sprite);
}
else if (Input.GetKey(moveRight)){
useMouse = false;
//rigidbody2D.velocity.x = speed;
transform.Translate(Vector2.right * speed * Time.deltaTime);
transform.localScale = new Vector3(-1f,1f,1f);//negative flips sprite facing right
myAnimator.SetBool("WalkToggleOnRight", true);
GameObject.FindGameObjectWithTag("Torso").GetComponent(SpriteRenderer).sprite = Resources.Load("Sprites/" + item.itemName + "Side", Sprite);
Debug.Log(item.itemName);
}
else{
useMouse = true;
transform.Translate(Vector2.right * 0 * Time.deltaTime);
myAnimator.SetBool("WalkToggleOnLeft", false);
myAnimator.SetBool("WalkToggleOnRight", false);
//set the sprite back to face front once we stop walking
GameObject.FindGameObjectWithTag("Torso").GetComponent(SpriteRenderer).sprite = Resources.Load("Sprites/" + item.itemName, Sprite);
target = transform.position;//finish off the target where we left off at
}
}
The line GameObject.FindGameObjectWithTag("Torso").GetComponent(SpriteRenderer).sprite = Resources.Load("Sprites/" + item.itemName + "Side", Sprite);
works for when I press Left Key or Right key but not for when I click left or right and I don't understand why. The if loops work! Results int true for click right or left, but it refuses to change the sprite! Its like it just ignores that code but the same code works for key left or right.
What am I missing?
Your answer
Follow this Question
Related Questions
How can i get my game to detect a collision? 1 Answer
Move mechanical arm with mouse 0 Answers
cannon game aiming with mouse maybe crosshairs or an arrow to show where it will hit 0 Answers
Can someone help me fix my Javascript for Flickering Light? 6 Answers
EXTREMELY basic scripting question. 2 Answers