【Unity】20180901摘录笔记整理

1、JavaScript脚本文件必须放入在StandardAssets、ProStandardAssets和Plugins这3个文件夹中的一个里面,否则无法编译。

2、单例模式和静态类

      单例模式:Singleton,只使用只使用某个类的一个实例

      定义:Public static T Instance;

      调用:T.Instace.Function( );

 

     静态类:不能继承和被继承 / 不能继承MonoBehaviour,实现接口 / 静态fa方法不能使用非静态成员

     何时使用单例:

      (1)你的类需要保存其他组件作为变量,有必要

      (2)只要你有在Unity编辑器上进行参数配置的需求,有必要

      (3)只要你的管理器需要进行加载的顺序控制,有必要

 

3、ITween中三个回调函数

Onstart:在当前动画开始执行的时候执行

OnUpdate:在当前动画的每一帧中执行

OnComplete:在当前动画执行完成后执行

 

4、协程

void Start( ){

   StartCoroutine( Countdown( ) ); //开始协程

}

IEnumerator Countdown( ){   //返回值

for( float timer=3; timer>=0; timer-=Time.deltaTime )

yield return 0; //现在停止

Debug.log(" ");

}

StopAllCoroutines( ),停止开始的协程

也可以字符串作为参数

 

5、Unity中三种脚本函数调用方法

静态函数:脚本名.函数名()

Gameobject.Find("脚本附加的物体名").SendMessage("函数名")

Gameobject.Find("脚本附加的物体名").GetComponent<脚本名>( ).函数名( );

 

BroadCastMessage方法进一步整合力SendMessage方法

 

6、实例和变量

实例:保留值,不能重用

变量:重用,不能保留值

 

7、相对坐标 / 绝对坐标坐标的转化

绝对→相对

transform.InverseTransformPoint( transform.Position)

transform.TransformPoint( vector3.up )

 

8、Unity移动物体到指定位置的四种方法

(1)void update( ){

float step=speed*Time.deltatime;

gameObject.transform.localPosition=vector3.MoveTowards(gameObject.transform.localPosition, new vector3(10,-3,50),step);

}

(2)使用插值

void update( ){

float step=speed*Time.deltatime;

gameobject.transform.localPosition=new Vector3(

Mathf.Lerp(gameObject.transform.localPosition.x,10,step),

Mathf.Lerp(gameObject.transform.localPosition.y,-3,step),

Mathf.Lerp(gameObject.transform.localPosition.z,50,step),

)

(3)ITween

ITween.MoveTo(m_UIbgCamera, iTween.Hash("x",-20,"y",-3,"z",50,"time",1.0f,"islocal",true));

(4)使用协程

StartCoroutine( MoveToPosition( ) );

IEnumerator MoveToPosition( ){

     GameObject m_UIbgCamera=Gameobject.Find("");

     While(m_UIbgCamera.transform.localPosition!=new vector3(-5,-3,50)){

          m_UIbgCamera.transform.localPosition=Vector3.MoveTowards(  m_UIbgCamera.transform.localPosition, new yield

return 0;)

}

 

9、计算场景中两点间的最短距离

vector3.Distance( , )

 

10、用户shen生成持久性对象

DontDestroyOnLoad( gameObject );

产生对象的持久性复制,用户需要创建单例对象

某些类需要作为单一实体存在,如:

GameManager、HighScoreManage、AudioManager、SavegameManager等,并包含统一的行为集合

 

全局静态Instance属性的最大优势在于,各类可直接访问全部GameManager属性,并调用较高层次功能。

可直接访问全部任何脚本文件,且无须使用任何局部变量或对象引用引用

 

11、基于接口的事件管理

接口仅定义了派生类应有的全部函数集,派生类在必要时须实现dui'对应函数,接口的存在使得qi't其他类可通过多态机制调用函数,且无须了解各个派生类的具体类型。

 

12、代码折叠折叠

#region #endregion

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值