- Home /
Question by
Daniel-Everland · Nov 10, 2012 at 08:20 PM ·
c#charactersprites
Character Sprite "Spasms"
I recently started development of a 2D sidescroller, everything was going great until I noticed a bug I cannot explain. I obviously have several character sprites, currently two for testing, upon running. It used to work like intended, but I've recently noticed that it has begun to sort of spasm. By that I mean it shifts between the two sprites really quickly, and it does this most of the time. Here's my spritescript. It's written in C#.
using UnityEngine;
using System.Collections;
public class SpriteScript : MonoBehaviour {
public GameObject Avatar;
public Texture spriteMovementRight01;
public Texture spriteMovementLeft01;
public Texture spriteMovementRight02;
public Texture spriteMovementLeft02;
void Update()
{
AvatarBehavoirScript avatarBehavoirScript = GameObject.Find("Avatar").GetComponent<AvatarBehavoirScript>();
while (avatarBehavoirScript.Movement == true)
{
Debug.Log ("True");
StartCoroutine(Movement());
break;
}
}
IEnumerator Movement()
{
AvatarBehavoirScript avatarBehavoirScript = GameObject.Find("Avatar").GetComponent<AvatarBehavoirScript>();
while(true)
{
Debug.Log("First");
if (Input.GetKey(KeyCode.A))
{
Avatar.renderer.material.mainTexture = spriteMovementLeft01;
}
if (Input.GetKey(KeyCode.D))
{
Avatar.renderer.material.mainTexture = spriteMovementRight01;
}
yield return new WaitForSeconds(1f);
Debug.Log ("Second");
if (Input.GetKey(KeyCode.A))
{
Avatar.renderer.material.mainTexture = spriteMovementLeft02;
}
if (Input.GetKey(KeyCode.D))
{
Avatar.renderer.material.mainTexture = spriteMovementRight02;
}
yield return new WaitForSeconds(1f);
avatarBehavoirScript.Movement = false;
break;
}
}
}
Comment