创建一个可以在Unity 4.6中翻转的图像

时间:2014-11-26 04:55:41

标签: c# unity3d

我正在尝试在Unity 4.6 2D中实现一张卡(想想特朗普卡)。我一般都在制作预制图像,让我们调用预制卡。

卡片有图像脚本(当然),源图像设置在卡片的背面。对于所有卡,这都是相同的。我如何实现前端,为每种类型的卡(五颗心,黑桃王等)提供独特的纹理/图像/精灵?

我目前正在使用动画进行翻转。卡的默认状态是面朝下。 "翻转"动画做到了这一点:

  • 在动画的中途,将Y轴旋转90度。
  • 设置一个新的源图像 - 现在这是"硬编码"一个" hearts_5.png",即五颗心。
  • 将比例尺X设定为-1。 (需要编辑关键帧以关闭从动画开始一段时间内发生的补间!)
  • 作为动画中的最后一个关键帧,再次旋转Y轴到180度。

因为我将卡片旋转180度,所以源图像会显示为镜像,这就是为什么我需要将比例X设置为-1以便将纹理反射回来。

它工作得很好,我现在需要找出如何(从C#代码)为卡(GameObject)>组件(图像)> sprite变量设置另一个Sprite,具体取决于实际卡(黑桃十等) )。我该怎么做?

如果有更好的方法可以实现这一目标,请继续。

1 个答案:

答案 0 :(得分:0)

public List<Sprite> sprites;
    private int m_index;

    public SpriteRenderer m_renderer;

    void Start() {
        m_index = 0;
        m_renderer = GetComponent<SpriteRenderer>();
    }
    public void SwitchSprite(somecardtype) {
        m_renderer.sprite = sprites[(int)somecardtype];

    }

或者您可以使用该私有m_index变量来索引将保存所有卡片精灵的精灵数组。这有帮助还是我需要详细说明?