首页 > 解决方案 > Sprite 更改了特定值 - 无法弄清楚如何计算该值

问题描述

谢谢你的帮助,

我有一个函数,当 AngelsValue 或 DevilsValue 发生变化时,精灵会发生变化。

我想做的是:

IF AngelsValue 是 DevilsValue 的 3 倍 = sprite change

IF AngelsValue 是 DevilsValue 的 5 倍 = sprite change

IF AngelsValue 是 DevilsValue 的 7 倍 = sprite change

和其他方式

IF DevilsValue 是 AngelsValue 的 3 倍 = sprite change

IF DevilsValue 是 AngelsValue 的 5 倍 = sprite change

IF DevilsValue 是 AngelsValue 的 7 倍 = sprite change

我的代码有效,但仅适用于特定数字......并将其置于示例 100 的价值中......我将有 100 行代码:)

多谢。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerSpriteChange : MonoBehaviour
{
    public Sprite AngelStage2;

    public Sprite AngelStage3;

    public Sprite AngelStage4;

    public Sprite DevilStage2;

    public Sprite DevilStage3;

    public Sprite DevilStage4;

    void Update()
    {


        if (AngelsCount.AngelsValue >=3 && DevilsCOunt.DevilsValue <= 1)

        {
            this.gameObject.GetComponent<SpriteRenderer>().sprite = AngelStage2;


        }

        else if (AngelsCount.AngelsValue >= 5 && DevilsCOunt.DevilsValue <= 3)
        {
            this.gameObject.GetComponent<SpriteRenderer>().sprite = AngelStage3;
        }

        else if (AngelsCount.AngelsValue >= 7 && DevilsCOunt.DevilsValue <= 5)
        {
            this.gameObject.GetComponent<SpriteRenderer>().sprite = AngelStage4;
        }



        else if (DevilsCOunt.DevilsValue >= 3 && AngelsCount.AngelsValue <= 1)
        {
            this.gameObject.GetComponent<SpriteRenderer>().sprite = DevilStage2;
        }

        else if (DevilsCOunt.DevilsValue >= 5 && AngelsCount.AngelsValue <= 3)
        {
            this.gameObject.GetComponent<SpriteRenderer>().sprite = DevilStage3;
        }

        else if (DevilsCOunt.DevilsValue >= 7 && AngelsCount.AngelsValue <= 5)
        {
            this.gameObject.GetComponent<SpriteRenderer>().sprite = DevilStage4;
        }










    }
}

标签: c#androidunity3d

解决方案


他们总是在数字上相距2吗?如果是这样,您可以使用 for 循环。如果您将 i 减去 3 并除以 2,您还可以有一个基于 0 的连续序列来轻松抓取您的精灵。从 3 = (3 - 3)/2 = 0, 5 = (5 - 3)/2 = 1. 7 = (7 - 3)/2 = 2 等开始,然后对面做同样的事情恶魔。

for (int i = 3; i <= 7; i += 2)
{
   if ((AngelsCount.AngelValue / DevilsCount.DevilsValue) >= i)
   {
      this.gameObject.GetComponent<SpriteRenderer>().sprite = GetAngelStage((i - 3)/2);
   }
}

推荐阅读