【问题标题】:Animate Scale Button Sprite C# Unity动画缩放按钮 Sprite C# Unity
【发布时间】:2018-07-11 16:01:02
【问题描述】:

我正在 Unity 中开发 VR-UI,我想在 Gaze/Looking 上缩放按钮的 Sprite。现在代码是这样的。

private void HandleOver()
   {
       isOver = true;
       StartCoroutine(WaitAndClick());

       //m_Image.color = Color.cyan;

           m_Image.rectTransform.sizeDelta += new Vector2(10, 10);

   }

   private void HandleOut()
   {
       isOver = false;
       //m_Image.color = Color.white;

           m_Image.rectTransform.sizeDelta = m_Image.rectTransform.sizeDelta - new Vector2(10, 10);

   }

这些基本上是进入和离开对象的 2 个空白。 现在它工作正常,但我希望它能够动画化。使用此代码,它是规模的即时变化。我也可以只访问 m_Image 的精灵所以子对象不会改变吗?

如果有任何帮助,我将不胜感激。提前致谢!

【问题讨论】:

    标签: c# visual-studio unity3d virtual-reality


    【解决方案1】:

    您可以创建一个Coroutine 来为按钮大小设置动画

    IEnumerator MakeBig()
    {
        var targetSize = m_Image.rectTransform.sizeDelta + new Vector2(10, 10);
    
        while (m_Image.rectTransform.sizeDelta != targetSize) {
            m_Image.rectTransform.sizeDelta += new Vector2(1, 1);
            yield return new WaitForSeconds(0.1f);
        }
    }
    

    然后在HandleOver 你这样开始

    makeHuge = StartCoroutine (MakeBig());
    

    我们需要在某处存储对Coroutine 的引用,因此我们可以尝试停止它,以防在MakeBig 完成之前触发HandleOut

    所以在HandleOut 你会做类似的事情

    StopCoroutine(makeHuge);
    

    对于HandleOver,反之亦然

    【讨论】:

      猜你喜欢
      • 2017-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2023-02-24
      相关资源
      最近更新 更多