c# - 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;
}
}
}
解决方案
他们总是在数字上相距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);
}
}
推荐阅读
- java - C# 客户端和 Java 服务器 - 文件上传获取错误数据。(有时)
- java - 插入数据库后preparedstatement停止工作
- java - 如何使用 Java 和 Selenium 运行电子应用程序
- react-native - Openstreetmaps 的 react-native-maps 中的暗模式
- arrays - 将数据附加到 Laravel 中的响应
- python - 使用 phonenumbers.PhoneNumberMatcher 提取未更改的原始电话号码
- javascript - MongoDB - 动态匹配所有嵌套对象属性路径
- sql - 字符串上的 PHP/SQL 更新
- inno-setup - 使用 Inno Setup 从注册表中读取应用程序实例和版本的列表?
- python - 为什么我不能在这个例子中用它的返回值替换函数名?