【发布时间】:2015-02-28 02:52:04
【问题描述】:
我需要将一张正面朝下的卡片的精灵替换为另一个(正面向上的卡片的)精灵。
这是附在正面朝下卡片上的 C# 脚本:
using UnityEngine;
using System.Collections;
public class Entra : MonoBehaviour
{
public float velocidadDeRotacion = 100.0f;
public Sprite CartaBase;
public Sprite CartaDelantera;
private bool clickActivado = false;
public void OnMouseDown()
{
clickActivado = true;
}
// Use this for initialization
void Start ()
{
}
// Update is called once per frame
void Update ()
{
if (clickActivado)
{
transform.Rotate(Vector3.up * Time.deltaTime * velocidadDeRotacion);
if (transform.eulerAngles.y >= 90)
{
SpriteRenderer Carta;
Carta = GetComponent<SpriteRenderer>();
if (Carta.sprite == CartaBase)
{
Carta.sprite = CartaDelantera;
transform.Rotate(Vector3.up * Time.deltaTime * velocidadDeRotacion);
if (transform.eulerAngles.y >= 0 && transform.eulerAngles.y <=10)
{
transform.eulerAngles = new Vector3(0, 0, 0);
clickActivado = false;
return;
}
}
clickActivado = false;
return;
}
}
}
}
如您所见,当我点击卡片时我会旋转卡片,当角度达到 90º 时,我会停止旋转并将精灵从 CartaBase 更改为 CartaDelantera。
现在我有两个问题。
- 当精灵的角度为 1º 或更大时,图像会中断。我输了 从中心到右边框的图像的右半部分,以及 我不明白为什么。
- 使用VS2013作为调试器,我一步步演练,当 它达到了
如果(Carta.sprite == CartaBase)
它直接跳到
clickActivado = false;
所以,显然不是“看到”卡片使用的精灵。为什么???
我使用this 脚本作为精灵更改的参考。
【问题讨论】: