在 2D 介面上 敵人位置

2021-08-16 01:30:56 字數 1791 閱讀 8433

public gameobject testtarget;

public ui2dsprite targetui;

public transform arrow;

private color gray;

private color colorful;

在unity編輯視窗 把指令碼對應的 物體拖好!下面**部分。

模擬【一】:顯示出敵人的位置

private void start()

//這裡別問我為什麼用協程,開心就好

private ienumerator uifollowtarget()

}private vector3 getenemypositionwithui(vector3 targetposition)

【模擬二】當敵人在視野範圍內時,不顯示ui。在是視野範圍外,顯示出ui

我們稍微修改一下前面的** (修改的部分黑色字型標出)

public gameobject testtarget;

public ui2dsprite targetui;

public transform arrow;

private color gray;

private color colorful;

private vector2 screenpoint01;

private vector2 screenpoint02;

private vector2 screenpoint03;

private vector2 screenpoint04;

private void start()

//這裡別問我為什麼用協程,開心就好

private ienumerator uifollowtarget()

else

else

//轉回去

vector2 finalpoint = uicamera.maincamera.screentoworldpoint(tonguiscreenpoint);

int dir = isinfront ? 1 : -1;

vector2 v2dir = enemypositionwithui - finalpoint;

v2dir = v2dir * dir;

arrow.transform.up = new vector3(v2dir.x, v2dir.y, 0);

//需要顯示的時候在更新位置

targetui.transform.position = finalpoint;

}yield return null;//注意新增每次都等一幀,否則會崩潰}}

private vector3 getenemypositionwithui(vector3 targetposition)

//這裡指再玩家視野範圍內,如果再矩形內,但是再背後,也算視野範圍外

bool isinrect(vector3 point)

private float multiply(float p1x, float p1y, float p2x, float p2y, float p0x, float p0y)

private bool isfrontofcamera(vector3 targetposition, transform cameratrans)

在螢幕上顯示2D文字

西昌.何雨鋒 2d文字的兩種寫法 2d文字有兩種寫的方法 第一種是用scene場景直接就在螢幕上寫了,可以支援中文,但是大小和字型是不能定的。第二種是用tvscreen2dtext類在螢幕上寫,大小,字型可定,但是好象不支援中文.第一種在渲染迴圈中加 scene1 drawtext 文字 x,y,顏...

在基於shader的D3D程式中實現2D面板

3d遊戲中,很多東西都需要以2d的形式展現,比如人物的狀態列,物品欄等,那麼如何才能在3d場景中放置它們呢?我在這裡介紹一種通過簡化變換過程而實現的方法.大家知道,乙個模型頂點在顯示到螢幕上,一共要經過4次變換,分別是世界變換,攝象機變換,投影變換以及視口變換.在世界變換中,我們通過乙個仿射矩陣把這...

max unity 方向 在2D遊戲中實現方向光照

老實講,這個需求是老闆提的。遊戲嘛,很多東西都可以做,但是做不做往往不是做的人可以決定的。這個效果雖然沒見過有遊戲實現過 一般實現的都是無方向的邊緣光 但是在一些2d動畫裡是有的 比如一款叫輪舞曲duo 的遊戲,在一些過場和戰鬥畫面裡面出現了很正確的光照效果,比如一盞燈從胸口平移過去可以看到非常合理...