(unity/c#)反射为类赋值小工具

string参数为需要修改的变量,dynamic需要一个int/float数值,将从playvalue类中检索对应变量修改数值

 public static class playerValue
    {
        public static int MeleeDMG;//近战伤害
        public static int RangedDMG;//远程伤害
        public static int MagicDMG;//魔法伤害
        public static int DEF;//防御力
        public static int HP;//生命值
        public static int MP;//法力值
        public static float MagicSPD;//技能极速
        public static float MoveSpeed;//移动速度
        public static float ATKSpeed;//攻击速度
        public static float Suck;//吸血
        public static float Element;//元素加成
        public static float Penetrate;//护甲穿透
        public static float CRIT;//暴击率
        public static float CRITDMG;//暴击伤害
        public static float HPReply;//生命回复
        public static float MPReply;//魔法回复
    }
    

  void IncreaseValue(string variableName, dynamic amount)
     {
         System.Type type = typeof(playerValue);
         System.Reflection.FieldInfo field = type.GetField(variableName);
         
         if (field != null)
         {
             if (field.FieldType == typeof(int))
             {
                 int currentValue = (int)field.GetValue(null);
                 int newValue = currentValue + (int)amount;
                 field.SetValue(null, newValue);
             }
             else if (field.FieldType == typeof(float))
             {
                 float currentValue = (float)field.GetValue(null);
                 float newValue = currentValue + amount;
                 field.SetValue(null, newValue);
             }
             else
             {
                 Debug.LogError("Unsupported field type.");
             }
         }
         else
         {
             Debug.LogError("Field not found.");
         }
     }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值