- 博客(17)
- 收藏
- 关注
原创 【c#】金钱数值处理
需要注意的是,如果你的游戏涉及到大量的金钱计算,确保在处理数值时不会溢出,同时也要注意在UI展示时格式化输出,以确保玩家可以清晰地看到大额金钱数值。这里的 {0:n0} 使用了标准的数字格式化字符串,它将数字格式化为带有逗号的形式,增强了可读性。在C#中,可以使用字符串的格式化功能或者标准的货币格式化来处理这个任务。另一种方法是使用货币格式化,这可以确保正确显示货币符号和小数点位置,即使你的金钱数值是整数。整数表示: 如果你的金钱数值是整数,没有小数部分,使用整数类型可以简化计算,减少内存占用。
2023-12-10 01:17:32 441 1
原创 编辑器拓展
[MenuItem("Assets/My Tools/Load", false, 2)] static void Test() { print("Hi"); }
2021-12-18 17:16:03 136
原创 加载资源 AssetDatabase
using UnityEngine;using UnityEditor;使用LoadAssetAtPath来加载资源,不过Instantiate只是创建一个新对象,不保持原引用(即克隆clone),这也是为什么新生成的对象并没有像直接拖动prefab一样变蓝(具有引用)的原因 GameObject prefab=AssetDatabase.LoadAssetAtPath<GameObject>("Assets/Customer.prefab");
2021-12-18 17:07:43 577
原创 编程 计算
不使用第三方变量交换a和bA:原理是利用两个数的差值不会发生改变 void swap(int a,int b) { a = a - b; b = b + a;//8 a = b - a; print(a + " " + b); }
2021-12-13 18:14:40 502
原创 Exception异常
int MyExceptiontEST(int num) { try { Debug.Log("try"); return 5 / num; } catch (System.Exception e) { Debug.Log("catch"); ...
2021-12-13 17:51:51 122
原创 static 静态类 方法 变量
当类第一次被加载时,会对类中的静态变量先按顺序进行分配内存空间,当全部分配完内存空间之后,再对静态变量按顺序赋值。 int x = y; int y = 5;程序会报错,因为x找不到y的值(y在栈中的值) int x = y; static int y = 5; static void Main() { Console.WriteLine(x); Console.WriteLine(y); } /*Ou.
2021-12-13 16:49:32 230
原创 内存 IL过程 装箱 拆箱
int i = 4;2 object o = i;3 object o2 = o;4 Console.WriteLine(ReferenceEquals(o, o2)); //true5 o = 8;6 Console.WriteLine(ReferenceEquals(o, o2)); //false7 8 Console.WriteLine("i={0
2021-12-12 22:32:12 152
原创 内存 int long object
int i = 1; object o = i;//装箱 int j = (int)o;//拆箱int在内存中占4字节,long占8字节,赋值给object的int类型,则object也占4字节,如果是long则为8字节。测试代码 int i = 6; print("int:"+sizeof(int)); System.Object o = i; print("object:"+System.Runt.
2021-12-12 18:42:15 229
原创 实例化方式的比较 Activator和new
void Start() { System.Activator.CreateInstance<Food>().Eat(); } void Start() { Create<Food>().Eat(); } T Create<T>()where T:new () { ...
2021-12-12 12:20:28 313
原创 ref和out
当我们想把一个值类像引用类型一样,别的类调用了某方法就能改变这个类的值类型,便可以使用ref、out这种参数传递。 void Start() { //print(GameUtil.RunRandom(0.5f)); int age = 10; print("age now"+age); Grow(ref age); print("grow age" + a
2021-12-12 12:06:38 123
原创 迭代器与协程
在foreach中,我们可以通过如下方法遍历List元素。其中的原理便是使用了迭代器,迭代器里用current定义到当前元素,MoveNext()转移到下一元素并返回bool值 List<int> ages=new List<int>(); for (int i = 0; i < 5; i++) { ages.Add(i); } IEnumerator ie = ages.
2021-12-11 19:52:21 2009
原创 继承 多态的理解
当父类想让子类实现同一方法的不同行为时,需要用virtual修饰,而且会要求子类必须重写这个方法。在子类重写父类的方法过程中,如果使用newpublic class Animal { public virtual void Eat() { Console.WriteLine("Animal eat"); } } public class Cat : Animal { public n
2021-12-10 11:54:06 299
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人