1. unity3d
簡單ai編寫
由於這次介紹的ai
很簡單,**直接貼上,
ai分成四個狀態:思考,轉身,移動,攻擊,這裡只是初步實現,所以想實現簡單點的操作,就像自動範圍內隨機移動,鎖敵攻擊,超出距離復位,近距離察覺等。
1 enemy_ai.js 2
3 private var regression : vector3;
4 public var player_prefab : transform;
5 public var enemy_state : string;
6 public var doing : boolean = true;
7 public var range : float = 4.0;
8 public var bullet : transform;
9 public var bullet_prefab : transform;
10 //
初始化敵人方向和位置
11 function start()
12 16 //
敵人行動模式
17 public var thinking : boolean = true;
18 public var thinking_time : float = 1.0;
19 private var relativepos : vector3;
20 private var rotation : quaternion;
21 public var facing : boolean = false;
22 public var facing_time : float = 2.0;
23 public var facing_speed : float = 2.0;
24 public var moving : boolean = false;
25 public var moving_speed : float = 0.5;
26 public var moving_time : float = 4.0;
27 public var moving_back : boolean = false;
28 public var attacking : boolean = false;
29 private var bullet_do : boolean = true;
30 public var bullet_cd : float = 0.2;
31 //
隨機移動方位
32 private var r_position : vector3;
33 function update ()
34 50 }
51 if(!moving_back)
52 59 else if(dist < 5)
60 63 rayjudge();
64 }
65 transform.localeulerangles.x = 0;
66 transform.localeulerangles.z = 0;
67 if(thinking && !attacking && !moving_back)
68 75 }
76 if(facing)
77 85 else if(moving_back)
86 89 else
90 97 }
98 }
99 if(moving)
100
106 else if(dist > 2)
107
112 else
113
116 }
117 if(doing && !attacking)
118
122 }
123 }
124 //
前方鎖敵
125 function rayjudge()
126
143 }
144 }
145 }
146 function wait(waittime : float)
147
151 function move(waittime : float)
152
158 else
159
162 thinking = true;
163 moving_back = false;
164 moving = false;
165 facing = false;
166 doing = true;
167 }
168 function face(waittime : float)
169
177 function think(waittime : float)
178
2.unity
學習過程中的一些細節分析 1.
獲取位置座標:當你
translate.position
獲取的不是物體在世界的座標時可以試試
translate. localrotation 2.
改變旋轉角度:這裡多半是用
translate.localrotation= quaternion.euler(x,y,z); 3.
如何更改滑鼠指標,這也是羽化以後可能遇到的問題,這裡只能簡單分析下,首先把滑鼠預設指標隱藏掉
screen.showcursor=flase;
再用個粒子或者代替,具體位置可以用
camera.main.screentoworldpoint()
和input.mouseposition
獲得。但有個問題就產生了,
ui會遮擋滑鼠,滑鼠用
ui代替總感覺不妥。。。所以羽化還沒想出解決方法
- -
4.有關過場
loading
的製作,一張還好說,換個
scene
或者寫個
ui都能解決,動態
loading
的是用可以達到效果,或者是預載入,具體可以看看羽化無縫地圖研究博文裡面的乙個別墅例子。 5.
也許有一天你也會遇到指令碼用
c#編寫時遇到一些莫名其妙的錯誤,所以這裡羽化建議動態指令碼命令最好用
js寫。
Unity3D如何快速入門?
一句話說明下unity是什麼,unity是乙個開發遊戲,主要用於手機遊戲開發的引擎,什麼是引擎,引擎就是工具的意思。在我看來,b 站是乙個非常牛逼的學習 真心的 上面的內容包羅永珍,應有盡有。比如 這套課程從基礎的資料型別講起,到後期的物件導向,正規表示式,包含委託事件特性等高階課程等。非常全面,他...
Unity3D開發(九) Unity3d流光效果
遊戲開 壇 hello game 遊戲開發群 201276069 之前曾經注意過material 中紋理的屬性都有 tiling 和offset 但沒有深究過其用途,今天才知道竟然可以利用 offset做uv 動畫,從而完成各種有趣的動畫,比如流光效果!流過效果即通常一條高光光在物體上劃過,模擬高光...
Unity3D中的AI架構模型
我們都知道現在ai 由人工製造出來的系統所表現出來的模擬人類的智慧型活動 非常的火,可以說是家喻戶曉。當然,在遊戲中,ai也是到處可以找到的,對於ai,我們應該關注的問題是如何讓遊戲角色能夠向人或動物那樣 感知 思考 和 行動 讓遊戲中的角色看上去具有真實的人或動物的反應。實際上,對於遊戲中的ai角...