- Home /
Question by
andreattard · Dec 12, 2016 at 07:57 AM ·
assetscodepagecallingfrom
How can i make an image turn 90 degrees and then an other image continues to turn when it reaches 90 degrees?
I have two images back of the card(which shows an image of the back of a playing card) and an image that have the front of the playing card. I want when i press play on unity the back of the card start truing and stop at 90 degrees and when it reaches 90 the other card start turning for 90 and stop. till now i managed to do this code but i don't know how to assign it to the asset?
float rotationleft1 = 90 ; float rotationspeed = 10; void Update() {
float rotation = rotationspeed * Time.deltaTime;
if (rotationleft1 > rotation)
{
rotationleft1 -= rotation;
}
else
{
rotation = rotationleft1;
rotationleft1 = 0;
}
transform.Rotate(0, rotation, 0);
Comment
Answer by Pengocat · Dec 12, 2016 at 10:15 AM
If I understand your intent you could simply swap the sprite while rotating.
using System.Collections;
using UnityEngine;
using UnityEngine.UI;
public class RevealCard: MonoBehaviour
{
public Image cardImage;
public Sprite frontSprite;
public float rotationSpeed = 10f;
// Use this for initialization
void Start()
{
StartCoroutine(RevealFrontOfCard(cardImage, frontSprite));
}
IEnumerator RevealFrontOfCard(Image card, Sprite front)
{
//Start turning the card until Upright
while (card.transform.localEulerAngles.y < 90f)
{
card.transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime);
yield return null;
}
// Swap the sprite
card.sprite = front;
// Continue until fully flipped
while (card.transform.localEulerAngles.y < 180f)
{
card.transform.Rotate(Vector3.up, rotationSpeed * Time.deltaTime);
yield return null;
}
}
}