unity 學習筆記(二)

2021-09-10 18:36:01 字數 3336 閱讀 8380

domovex(5,3);  

//x座標移動到5,用時3秒

go.transform.doblendablescaleby(

newvector3

(0.3f, 0.3f, 0.3f), 0.4f); /

/在0.4秒增加0.3

相應的 go.transform.doblendablescaleby(

newvector3

(-0.3f, -0.3f, -0.3f), 0.4f); /

/在0.4秒減小0.3

協同程式:

ienumerator one(gameobject go)   

//開啟乙個協程,這裡引數為gameobject,當go為false代表終止協程,並且當go再次開啟為true時,協程也不開啟

networkmanager

控制聯網遊戲

左右滑動三維物體旋轉角度:

public void onmousedrag()

使用dotween的transform.doscale(new vector3(0,0,0),0.4f)實現在0.4秒的時間內,面板由原本大小縮小到座標(0,0,0)點,

使用transform.doscale(1f,0.4f)實現在0.4秒的時間內,面板由座標(0,0,0)放大到原本大小

ugui更改

image myimage;

myimage.sprite=resources.load(「//

位置」+//

名稱,typeof(sprite))as sprite;

通過協程從

www上獲取到

定義乙個事件的**

public delegate void onplayerinfochangedevent(infotype type);

定義乙個事件

public event onplayerinfochangedevent onplayerinfochanged;

在別的類註冊

playerinfo._instance.onplayerinfochanged += onplayerinfochanged;

在別的類銷毀

playerinfo._instance.onplayerinfochanged -= onplayerinfochanged;

在定義事件的類裡,寫在需要改變的地方

void onplayerinfochanged(infotype type)

enum

型別的強轉

equipment.equipmenttype equipmenttype=(equipment.equipmenttype)system.enum.parse(typeof (equipment.equipmenttype), equipmenttypevalye.tostring());

移動的時候改變主角的朝向

vector3 vel = rigidbody.velocity;

rigidbody.velocity = new vector3(-h*velocity, vel.y, -v*velocity);

if (mathf.abs(h) > 0.05 || mathf.abs(v) > 0.05)

//表示移動,改變主角的朝向

另乙個方法:

transform.lookat(new vector(v,0,h)+transform.rotation

rigidbody.velocity.magnitude

返回向量的長度,也就是點

p(x,y,z)

到原點(0,0,0)

的距離。

最常用的是用來返回物體的移動速度

setdestination(target.position);

表示尋路,目標為

target.position

substring(0,4)

表示從字元從第一位開始,擷取4位

怪物的擊退效果:

transform.domove(transform.position + findplayer._instance.player.transform.forward * 1f, 1f); //

將目標的世界座標轉化為螢幕座標

vector2 pos = recttransformutility.worldtoscreenpoint(camera.main, targetpos);

按鈕新增事件:

button button;

button.onclick.addlistener(onclick);

void onclcik()

assetbundle

打包:

//引數:1.打包目錄,2.打包選項,3.打包平台

buildpipeline.buildassetbundles("assetbundles", buildassetbundleoptions.none, buildtarget.standalonewindows64);

assetbundle

載入:

assetbundle

ab=

assetbundle

.loadfromfile(

"assetbundles/wall.ab"

);//

載入相對路徑

gameobject

go = ab.loadasset<

gameobject

>(

"wall"

); //

從assetbundle取得自己的prefab;

instantiate(go);   

//例項化生成

求角度:

vector3.angle(player1.forward,player2.forward); 

//得到兩者之間的角度

求方向(點積):

vector3.dot(player1.forward,player2.forward); 

//得到乙個值,>0 兩者同向, <0 兩者反向, =0 兩者垂直

求距離:方法1:

(plyaer1.position-player2.position).magnitude  

//比較精確 方法

2:(player1.position-player2.position).sqrmagnitude

//比較省 方法

3:vector3.distance(player1.position,player2.position);

在攝像機的世界裡,黑色是透明

rendertexture

製作動態頭像

recttransform.sizedelta

表示ugui

元件的尺寸

Unity學習筆記

1.overlapsphere 這一類overlap 的函式返回附近物件的列表 2.sendmessage 函式 嘗試呼叫指定的函式,不管目標物件的型別 eg overlapsphere 返回乙個附近物件的列表 collider hitcolliders physics.overlapsphere ...

Unity學習筆記

002 變數 usingsystem using system.collections.generic using system.linq using system.text using system.threading.tasks namespace 002 變數 003 變數的型別 namesp...

unity學習筆記

建立乙個自定義列表 如何建立乙個註腳 注釋也是必不可少的 katex數學公式 新的甘特圖功能,豐富你的文章 uml 圖表 flowchart流程圖 匯出與匯入 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下mar...