unity api随笔

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();

猜你喜欢

转载自blog.csdn.net/Mediary/article/details/87973823