transform.localscale
扩大物体的x轴向0.1个单位
transform.localscale += new vector3(0.1f, 0, 0);
Vector3.MoveTowards(
//表示以每秒moveMax的速度从Current移动到Target。
//因为Current和Target距离是4,所以当moveMax 等于0.5f,用时8秒,moveMax等于2时,用时2秒。
Vector3 Current = new Vector3(0, 0, 0);
Vector3 Target = new Vector3(0, 0, 4);
Current = Vector3.MoveTowards(Current, Target, moveMax * Time.deltaTime);
Mathf.Repeat
定义
public static float Repeat(float t,float length);
循环值t,使输出不会大于等于length,也不会小于0。
//输入 012345678
//输出 012012012
for (int i = 0; i < 9; i++)
{
Debug.Log(Mathf.Repeat(i,3));
}
Mathf.PingPong
定义
public static float PingPong(float t,float length);
循环值t,使输出不会大于length,也不会小于0。
返回值将在0和length之间来回移动。
//输入012345678
//输出012321012
for (int i = 0; i < 9; i++)
{
Debug.Log(Mathf.PingPong(i,3));
}
获取字符串真实长度
string s="dawdawf 字体"
Dub.Log(System.Text.Encoding.Default.GetBytes(s).Length);
gameObject.activeInHierarchy
判断物体是否显示状态
if (!gameObjectt.activeInHierarchy)
{
}
gameObject.activeSelf
也是判断物体显示状态, 和上面的区别为
activeHierarchy可以理解为场景中的可见状态。如果某个对象在场景中不可见,对应的activeHierarchy和activeSelf属性一定为false,而该对象的子对象的activeHierarchy也为false,其activeSelf属性却取决于自身的状态,不依赖于父对象。
Mathf.FloorToInt
返回最大的整数,小于或等于f。
Debug.Log(Mathf.FloorToInt(10.0F));
Debug.Log(Mathf.FloorToInt(10.2F));
Debug.Log(Mathf.FloorToInt(10.7F));
Debug.Log(Mathf.FloorToInt(-10.0F));
a??b
空合并运算符:??
用于定义可空类型和引用类型的默认值。如果此运算符的左操作数不为null,则此运算符将返回左操作数,否则返回右操作数。
例如:a??b 当a为null时则返回b,a不为null时则返回a本身。
空合并运算符为右结合运算符,即操作时从右向左进行组合的。如,“a??b??c”的形式按“a??(b??c)”计算。
int? a;
//a = null;
a = 6;//a不为空所以b返回的是a的值,如果a为空的话b返回3
nt b = a ?? 3;
Debug.Log(b+"+++b");
PlayerPrefs
用于本地持久化保存与读取的类,以键值对的形式将数据保存在文件中,然后程序可以根据这个名称取出上次保存的数值
PlayerPrefs类支持3中数据类型的保存和读取,浮点型,整形,和字符串型。
分别对应的函数为:
SetInt();保存整型数据;
GetInt();读取整形数据;
SetFloat();保存浮点型数据;
GetFlost();读取浮点型数据;
SetString();保存字符串型数据;
GetString();读取字符串型数据;
这些函数的用法基本一致使用Set进行保存,使用Get进行读取。
PlayerPrefs.SetString("_NAME", set_NAME);
get_NAME=PlayerPrefs.GetString("_NAME");
int.TryParse
int.Parse()是一种类容转换;表示将数字内容的字符串转为int类型。 如果字符串为空,则抛出ArgumentNullException异常; 如果字符串内容不是数字,则抛出FormatException异常; 如果字符串内容所表示数字超出int类型可表示的范围,则抛出OverflowException异常; int.TryParse 与 int.Parse 又较为类似,但它不会产生异常,转换成功返回 true,转换失败返回 false。最后一个参数为输出值,如果转换失败,输出值为 0
int y=0;
int Num;
if(int .TryParse("9",out y))
{
Num=y;//如果"9"不能转化为int类型,if里的表达式为false,如果转化成功就赋给变量y; 然后我们就可以无限次使用y帮我们取值啦,(*^__^*) 嘻嘻…… int.TryParse的最大好处是再也不用担心类型转化时报错了;
}
object类型转换string
虽然挺基础的但是被卡住了一会,先记下来再说
要求是把object类型的value转换成int类型
object value=1+","+3;
string data;
string a1 = value.ToString();
string[] data = a1.Split(',');
int data1 =int.Parse( data[0]);
int data2 =int.Parse( data[1]);
Debug.Log(data1+data2);
//简洁点
string[] a = value.ToString().Split(',');
Debug.Log(int.Parse(a[0]),int.Parse(a[1]));
有的时候类型转换会报错
异常 System.InvalidCastException: Specified cast is not valid.
//比如上面那个
int a=(int)value;
//这样写的话编译器不会报错,但是引擎会报上面那个异常
//看到了一个解决方案,这样ok
int a=Convert.ToInt32(value)
Trim()用法
去除一段文字中的首尾的空格
account_str = InpUsername.text.Trim();