Unity脚本-part3

GetComponent函数

Unity中,脚本可视为自定义的组件,你会经常需要获取同一个甚至其他对象上的脚本,通过GetComponent可以获取到其他的脚本和组件
在这里插入图片描述

DeltaTime

Delta这个术语表示两个值的差别
Time类中的delTime属性本质是两次update或fixedupdate的间隔,这可以用来平滑运动过程中使用的数值和其他增量的计算

Instantiate函数

Instantiate函数用来创建游戏对象的克隆体,通常指克隆一个预制体

Invoke函数

安排一个延时一定时间调用的函数
Invoke函数有两个参数,一个代表要调用的函数的名称,一个代表要延时的时长,单位为秒
在这里插入图片描述
注意:只有返回值为void且参数列表为空的函数才可以被Invoke调用
如果需要重复调用Invoke函数,可以使用InvokeRepeating函数

多态

子类如果向上转型,只能被当作基类来使用
在这里插入图片描述
即使是使用子类构造创建的,只能使用基类含有的变量和函数,虚函数是个例外,它会去调用子类中重载的函数
如果要使这个子类对象被当作子类来使用,只能向下转型,使变量变回子类类型
在这里插入图片描述

成员隐藏

创建子类对象时,调用父类和子类中都有的方法,会自动的隐式向上转型,将调用父类中的同名方法,所以我们需要对这个方法进行修改,在名称前面加上new关键字,确保子类对象调用的是子类中的方法
在这里插入图片描述

覆盖

override
要在父类中将函数设置为 virtual ,在子类中使用 override,就会重新创建函数,
如果需要子类函数保存父类函数的同时再新增额外内容时,
需使用 base.function();

拓展方法

用来给类型增加功能,而不同创建一个衍生类型或者修改原类型。
适用于需要增加类的功能,但不能修改类本身的情况
比如在transform类中拓展方法
拓展方法必须放在无泛型静态类中
在这里插入图片描述
方法声明必须是静态的,第一个参数要使用this关键字,同时,第一个参数也指明方法会成为哪个类的一部分,如需要更多参数,就直接放在后面
注意:尽管这个函数声明时有一个参数,但在它被调用时不需要传入参数,
这个参数会隐含的变成 transform的实例

void Start () {
    //请注意,即使方法声明中
    //有一个参数,也不会将任何参数传递给
    //此扩展方法。调用此方法的
    //Transform 对象会自动作为
    //第一个参数传入。
    transform.ResetTransformation();![在这里插入图片描述](https://img-blog.csdnimg.cn/20190824222411386.png)

泛型集合

list类似一个动态的数组,使用时不需要提前知道里面会有多少个元素
list是泛型的,可以存储任何类型
Add() :为list添加元素
Insert():接收一个下标,在其后面插入一个元素,并将这个索引后的所有元素都后移一个位置
removeAt():移除指定索引位置的元素,并将其后的元素前移一个位置
Sort():用来对指定类型,以其内部的任何变量进行排序
使用sort()需要类实现IComparable接口,并且重写其中的ComparaTo()方法
在这里插入图片描述
dictionary工作原理类似,但需要两种参数 key-value
Coroutines()协程可以视为是间隔执行的函数

发布了58 篇原创文章 · 获赞 3 · 访问量 1950

猜你喜欢

转载自blog.csdn.net/qq_34343249/article/details/99953843