《Unity API解析》挑選了Unity引擎里一些核心API類,例如 Object、GameObject、Rigidbody、Transform、Camera、Quaternion、Vector3等進行了詳細的功能註解,註解內容包括API的使用方法、算法分析、邊界條件、參數間的制約關係及注意事項等,特別是對很多功能相近或使用方法相似的API進行了較為詳細的比較說明。 《Unity API解析》適用於對Unity有一定了解的入門開發人員,也可作為Unity開發者的參考手冊。
基本介紹
- 中文名:Unity API解析
- 作者:陳泉宏
- 類別:計算機與網際網路
- 出版社:人民郵電出版社
- 出版時間:2014年9月1日
- 頁數:243 頁
- 開本:16 開
- ISBN:7115366519
- 語種:簡體中文
內容簡介,圖書目錄,作者簡介,
內容簡介
國內首本深度解析Unity API的著作。
全面深入的註解,可以讓Unity新手輕鬆上手並快速提升能力。
本書挑選了Unity引擎里一些核心API類例如 Object、GameObject、Rigidbody、Transform、Camera、Quaternion、Vector3等進行了詳細的功能註解,註解內容包括API的使用方法、算法分析、邊界條件、參數間的制約關係及注意事項等,特別是對很多功能相近或使用方法相似的API進行了較為詳細的比較說明。
圖書目錄
第1章 Application類 1
1.1 Application類靜態屬性 1
1.1.1 dataPath屬性:數據檔案路徑 1
1.1.2 loadedLevel屬性:關卡索引 2
1.2 Application類靜態方法 4
1.2.1 CaptureScreenshot方法:截屏 4
1.2.2 LoadLevelAdditiveAsync方法:異步載入關卡 11
1.2.3 RegisterLogCallback方法:註冊委託 12
第2章 Camera類 14
2.1 Camera類實例屬性 14
2.1.1 aspect屬性:設定攝像機視口比例 14
2.1.2 cameraToWorldMatrix屬性:變換矩陣 15
2.1.3 cullingMask屬性:攝像機按層渲染 17
2.1.4 eventMask屬性:按層回響事件 18
2.1.5 layerCullDistances屬性:層消隱的距離 20
2.1.6 layerCullSpherical屬性:基於球面距離剔除 21
2.1.7 orthographic屬性:攝像機投影模式 22
2.1.8 pixelRect屬性:攝像機渲染區間 23
2.1.9 projectionMatrix屬性:自定義投影矩陣 25
2.1.10 rect屬性:攝像機視圖的位置和大小 27
2.1.11 renderingPath屬性:渲染路徑 29
2.1.12 targetTexture屬性:目標渲染紋理 30
2.1.13 worldToCameraMatrix屬性:變換矩陣 32
2.2 Camera類實例方法 32
2.2.1 RenderToCubemap方法:生成Cubemap靜態貼圖 33
2.2.2 RenderWithShader方法:使用其他shader渲染 34
2.2.3 ScreenPointToRay方法:近視口到螢幕的射線 35
2.2.4 ScreenToViewportPoint方法:坐標系轉換 36
2.2.5 ScreenToWorldPoint方法:坐標系轉換 37
2.2.6 SetTargetBuffers方法:重設攝像機到TargetTexture的渲染 38
2.2.7 ViewportPointToRay方法:近視口到螢幕的射線 39
2.2.8 ViewportToWorldPoint方法:坐標點的坐標系轉換 41
2.2.9 WorldToScreenPoint方法:坐標點的坐標系轉換 42
2.2.10 WorldToViewportPoint方法:坐標點的坐標系轉換 44
2.3 關於Camera視口、aspect、pixelRect及rect的關係註解 45
第3章 GameObject類 49
3.1 GameObject類實例屬性 49
3.2 GameObject構造方法 51
3.3 GameObject類實例方法 52
3.3.1 GetComponent方法:獲取組件 52
3.3.2 SendMessage方法:傳送訊息 56
3.4 GameObject類靜態方法 58
3.5 關於GameObject類和Component類的使用註解 60
第4章 HideFlags類 62
4.1 HideFlags類枚舉成員 62
4.1.1 DontSave:保留對象到新場景 62
4.1.2 HideAndDontSave:保留對象到新場景 64
4.1.3 HideInHierarchy:在Hierarchy面板中隱藏 65
4.1.4 HideInInspector:在Inspector面板中隱藏 66
4.1.5 None:HideFlags默認值 67
4.1.6 NotEditable:對象在Inspector面板中的可編輯性 67
4.2 HideFlags類使用小結 68
第5章 Mathf類 69
5.1 Mathf類靜態屬性 69
5.1.1 Deg2Rad屬性:從角度到弧度常量 69
5.1.2 Infinity屬性:正無窮大 70
5.2 Mathf類靜態方法 71
5.2.1 Clamp方法:返回有限範圍值 71
5.2.2 ClosestPowerOfTwo方法:返回2的某次冪 72
5.2.3 DeltaAngle方法:最小增量角度 73
5.2.4 InverseLerp方法:計算比例值 74
5.2.5 Lerp方法:線性插值 75
5.2.6 LerpAngle方法:角度插值 75
5.2.7 MoveTowards方法:選擇性插值 77
5.2.8 MoveTowardsAngle方法:角度的選擇性插值 78
5.2.9 PingPong方法:往復運動 79
5.2.10 Repeat方法:取模運算 80
5.2.11 Round方法:浮點數的整型值 81
5.2.12 SmoothDamp方法:模擬阻尼運動 83
5.2.13 SmoothDampAngle方法:阻尼旋轉 84
5.2.14 SmoothStep方法:平滑插值 85
第6章 Matrix4x4類 88
6.1 Matrix4x4類實例方法 88
6.1.1 MultiplyPoint方法:投影矩陣變換 88
6.1.2 MultiplyPoint3x4方法:矩陣變換 89
6.1.3 MultiplyVector方法:矩陣變換 89
6.1.4 SetTRS方法:重設Matrix4x4變換矩陣 91
6.2 Matrix4x4類靜態方法 92
6.2.1 Ortho方法:創建正交投影矩陣 92
6.2.2 Perspective方法:創建透視投影矩陣 93
6.2.3 TRS方法:返回Matrix4x4實例 95
第7章 Object類 96
7.1 Object類實例方法 96
7.2 Object類靜態方法 97
7.2.1 Destroy方法:銷毀對象 97
7.2.2 DontDestroyOnLoad方法:新場景中保留對象 98
7.2.3 FindObjectsOfType方法:獲取對象 100
7.2.4 Instantiate方法:實例化對象 101
第8章 Quaternion類 102
8.1 Quaternion類實例屬性 102
8.2 Quaternion類實例方法 103
8.2.1 SetFromToRotation方法:創建rotation實例 103
8.2.2 SetLookRotation方法:設定Quaternion實例的朝向 104
8.2.3 ToAngleAxis方法:Quaternion實例的角軸表示 106
8.3 Quaternion類靜態方法 107
8.3.1 Angle方法:Quaternion實例間夾角 107
8.3.2 Dot方法:點乘 108
8.3.3 Euler方法:歐拉角對應的四元數 109
8.3.4 FromToRotation方法:Quaternion變換 111
8.3.5 Inverse方法:逆向Quaternion值 112
8.3.6 Lerp方法:線性插值 113
8.3.7 LookRotation方法:設定Quaternion的朝向 114
8.3.8 RotateTowards方法:Quaternion插值 115
8.3.9 Slerp方法:球面插值 116
8.4 Quaternion類運算符 117
8.4.1 operator*(lhs:Quaternion,rhs:Quaternion) 117
8.4.2 operator*(rotation:Quaternion,point:Vector3) 118
8.5 關於Quaternion類中相乘運算符的兩種重載方式的註解 119
第9章 Random類 120
9.1 Random類靜態屬性 120
9.1.1 insideUnitCircle屬性:圓內隨機點 120
9.1.2 rotationUniform屬性:均勻分布特徵 121
9.1.3 seed屬性:隨機數種子 123
9.2 Random類其他常用靜態屬性功能簡介 124
第10章 Rigidbody類 125
10.1 Rigidbody類實例屬性 125
10.1.1 collisionDetectionMode屬性:碰撞檢測模式 125
10.1.2 drag屬性:剛體阻力 127
10.1.3 inertiaTensor屬性:慣性張量 128
10.1.4 mass屬性:剛體質量 129
10.1.5 velocity屬性:剛體速度 131
10.2 Rigidbody類實例方法 132
10.2.1 AddExplosionForce方法:模擬爆炸力 132
10.2.2 AddForceAtPosition方法:增加剛體點作用力 135
10.2.3 AddTorque方法:剛體添加扭矩 136
10.2.4 ClosestPointOnBounds方法:爆炸點到剛體最短距離 138
10.2.5 GetPointVelocity方法:剛體點速度 139
10.2.6 GetRelativePointVelocity方法:剛體點相對速度 140
10.2.7 MovePosition方法:剛體位置移動 142
10.2.8 Sleep方法:剛體休眠 143
10.2.9 SweepTest方法:檢測碰撞器 144
10.2.10 SweepTestAll方法:探測碰撞器 146
10.2.11 WakeUp方法:喚醒剛體 147
10.3 關於useGravity、isKinematic和velocity的使用註解 147
10.4 關於Rigidbody中mass、density及scale之間的關係註解 150
10.5 關於作用力方式ForceMode的功能註解 151
10.6 關於OnTriggerXXX和OnCollisionXXX的功能註解 153
第11章 Time類 158
11.1 Time類靜態屬性 158
11.1.1 realtimeSinceStartup屬性:程式運行實時時間 158
11.1.2 smoothDeltaTime屬性:平滑時間間隔 159
11.1.3 time屬性:程式運行時間 160
11.2 Time類其他常用靜態屬性功能簡介 162
第12章 Transform類 163
12.1 Transform類實例屬性 163
12.1.1 eulerAngles屬性:歐拉角 163
12.1.2 forward屬性:z軸單位向量 164
12.1.3 hasChanged屬性:transform組件是否被修改 165
12.1.4 localPosition屬性:局部坐標系位置 166
12.1.5 localToWorldMatrix屬性:轉換矩陣 168
12.1.6 parent屬性:父物體Transform實例 169
12.1.7 worldToLocalMatrix屬性:轉換矩陣 170
12.2 Transform類實例方法 171
12.2.1 DetachChildren方法:分離物體層級關係 171
12.2.2 GetChild方法:獲取GameObject對象子類 172
12.2.3 InverseTransformDirection方法:坐標系轉換 173
12.2.4 InverseTransformPoint方法:點的相對坐標向量 174
12.2.5 IsChildOf方法:是否為子物體 175
12.2.6 LookAt方法:物體朝向 176
12.2.7 Rotate方法:繞坐標軸旋轉 177
12.2.8 Rotate方法:繞某個向量旋轉 178
12.2.9 RotateAround方法:繞軸點旋轉 179
12.2.10 TransformDirection方法:坐標系轉換 180
12.2.11 TransformPoint方法:點的世界坐標位置 181
12.2.12 Translate方法:相對坐標系移動 182
12.2.13 Translate方法:相對其他物體移動 183
12.3 關於localScale和lossyScale的功能註解 184
12.4 關於Transform類中涉及空間變換的幾個屬性和方法的功能註解 186
第13章 Vector2類 190
13.1 Vector2類實例方法 190
13.2 Vector2類靜態方法 191
13.2.1 Angle方法:兩個向量夾角 191
13.2.2 ClampMagnitude方法:向量長度 192
13.2.3 Lerp方法:向量插值 193
13.2.4 MoveTowards方法:向量插值 194
13.2.5 Scale方法:向量放縮 196
13.3 Vector2類運算符 197
第14章 Vector3類 199
14.1 Vector3類實例屬性 199
14.1.1 normalized屬性:單位化向量 199
14.1.2 sqrMagnitude屬性:模長平方 200
14.2 Vector3類實例方法 201
14.3 Vector3類靜態方法 203
14.3.1 Angle方法:求兩個向量夾角 203
14.3.2 ClampMagnitude方法:向量長度 203
14.3.3 Cross方法:向量叉乘 205
14.3.4 Dot方法:向量點乘 206
14.3.5 Lerp方法:向量插值 207
14.3.6 MoveTowards方法:向量插值 208
14.3.7 OrthoNormalize方法:兩個坐標軸的正交化 209
14.3.8 OrthoNormalize方法:3個坐標軸的正交化 211
14.3.9 Project方法:投影向量 213
14.3.10 Reflect方法:反射向量 214
14.3.11 RotateTowards方法:球形插值 215
14.3.12 Scale方法:向量放縮 216
14.3.13 Slerp方法:球形插值 218
14.3.14 SmoothDamp方法:阻尼移動 219
14.4 Vector3類運算符 220
14.5 關於Vector3.Lerp和Vector3.MoveTowards的功能註解 221
14.6 關於Vector3.RotateTowards和Vector3.Slerp的功能註解 222
第15章 遊戲實例——堅守陣地 223
15.1 遊戲概述 223
15.2 建模與導入 225
15.3 程式腳本 229
15.4 製作簡單小地圖 242
作者簡介
陳泉宏,畢業於北京工業大學,本科主修數學,研究生主修計算機技術,喜歡鑽研技術和獨立思考。2010年開始接觸Android程式開發,是音樂識別軟體“音樂雷達”的開發者之一,曾獨立開發和發布過多個應用程式。2011年開始接觸Unity,現在就職於北京市計算中心,主要負責中國科學技術館的虛擬裝配項目。