這是歷史版本頁面 — 看 Unity 最新版本

想做遊戲但不知從哪開始,Unity能幫你什麼

Unity 軟體圖示 Unity 5.3.7 資料更新 2016-10-31 閱讀約 7 分鐘

你大概有過這種時刻:玩了某款遊戲之後,心裡冒出「這我也做得出來」的念頭,於是打開電腦想找一套能開發遊戲的軟體。結果搜尋到的東西不是太專業看不懂,就是下載下來不知道從哪裡開始,連要建一個角色、讓它動起來都找不到按鈕。你只是想先做一個簡單的小遊戲試試看,卻卡在第一步。

如果從程式語言開始學,光是理解變數、迴圈、物件導向就要花上好幾個月,還沒碰到遊戲畫面就先放棄了。就算找到現成的遊戲範例,也常常因為版本不對、缺少素材、不知道怎麼修改而卡住。這類遊戲開發工具的切入點,是把「寫程式」和「做遊戲」之間的距離縮短——用視覺化的編輯器排列場景、拖曳物件、設定參數,需要寫程式的部分再補上程式碼,同時提供大量現成素材和教學資源,讓你能夠從一個小原型開始,逐步做出完整的遊戲。

Unity 操作介面
Unity 的操作介面

01Unity能做什麼類型的遊戲?

官方說明指出它同時支援2D和3D開發,包含AI尋路工具、UI系統、物理引擎(Box2D和NVIDIA PhysX)、動畫工具、後製特效等,可以製作各種類型的遊戲。官方也提到可以用於VR、AR、手機、桌機、網頁、電視等多種平台。具體想做什麼類型的遊戲,可以參考官方教學和Asset Store的資源。

02它支援哪些平台發布?

官方說明提到可以發布到25個以上平台,包括手機(iOS、Android)、桌機(Windows、Mac)、遊戲主機、電視、VR、AR和網頁。它的跨平台功能可以「build once and deploy to the largest range」,也就是一次建置就能發布到多個平台。但具體支援哪些平台,建議到官方網站確認最新清單。

03免費版有什麼限制?

官方說明提到「Unity 6 Personal - Free Plan」是免費版本,但資格是「Revenue or funding less than $200K in the last 12 months」,也就是過去12個月收入或資金少於20萬美元。超過這個門檻就需要付費方案。免費版包含核心開發平台功能,但可能缺少某些進階功能,建議到官方網站查看免費版與付費版的詳細比較。

Unity 介面畫面 2
Unity 介面畫面

04Asset Store是什麼?

sset Store是Unity的資源商店,官方說明提到裡面有「thousands of quality, ready-made assets」,包括資源、工具、擴充功能等,可以加速專案開發。你可以購買或下載免費的素材、外掛、教學資源等。它同時也是社群分享知識的地方,對初學者來說是很好的學習資源。

05Unity Hub是做什麼的?

官方說明提到Unity Hub是用來管理多個Unity Editor安裝、建立新專案、存取你的工作的工具。也就是說,你可以用Unity Hub來安裝不同版本的Unity、切換專案、管理編輯器。它算是Unity開發流程的入口,建議先安裝Unity Hub再開始使用。

06完全沒寫過程式的人適合用嗎?

官方說明提到「beginners, students and hobbyists」是目標使用者之一,而且有「tons of tutorials and ready-made assets」可以引導學習。但Unity本身是專業遊戲引擎,需要學習程式語言(C#)和遊戲開發概念。如果完全沒寫過程式,建議先從官方教學和簡單的2D專案開始,逐步學習。

Unity 介面畫面 3
Unity 介面畫面

07獨立開發者適合嗎?

官方說明提到「independent developers and studios」是主要使用者,而且免費版就是為了獨立開發者設計的(收入低於20萬美元)。官方也提到「democratizing ecosystem smashes the time and cost barriers」,意思是降低開發時間和成本門檻。如果你是自己一個人或小團隊開發,Unity的資源和社群應該能提供足夠支援。

08學生或業餘愛好者適合嗎?

官方說明提到「beginners, students and hobbyists」是目標使用者,而且有大量教學資源和免費版可以使用。學生可以用免費版學習遊戲開發,業餘愛好者也可以用它來做自己喜歡的專案。但要注意免費版的收入限制,如果未來你的遊戲開始賺錢且超過20萬美元,就需要升級付費方案。

09不會英文的人用這套軟體會很吃力嗎?

這套軟體的介面語系是英文,官方說明也是英文,所以不會英文的話確實會比較吃力。但Unity有龐大的中文社群和教學資源,網路上有許多中文教學影片和文章。建議可以先從中文教學開始學習,同時慢慢熟悉英文介面。如果完全無法接受英文介面,可能需要考慮其他有中文介面的遊戲引擎。

Unity 介面畫面 4
Unity 介面畫面

10我公司收入超過20萬美元,還能用免費版嗎?

根據官方說明,免費版的資格是「Revenue or funding less than $200K in the last 12 months」,也就是過去12個月收入或資金少於20萬美元。如果你的公司收入超過這個門檻,就不能使用免費版,需要購買付費方案。建議到Unity官方網站查看最新的授權方案和價格。

11我的電腦還是Windows 7,能用嗎?

官方支援系統包含Windows 7 64位元,所以如果你的電腦是Windows 7 64位元,應該可以安裝使用。但要注意,Windows 7已經停止支援,Unity後續版本可能不再支援Windows 7。建議確認你使用的Unity版本是否支援Windows 7,並考慮升級作業系統以獲得更好的相容性和安全性。

12我只想做簡單的2D小遊戲,用這套軟體會不會太複雜?

Unity支援2D開發,官方說明提到「The app supports both 2D and 3D development with features and functionality for your specific needs across genres」,所以2D遊戲是沒問題的。但Unity本身是專業引擎,功能很多,學習曲線可能比專門的2D遊戲工具(如GameMaker)陡峭。如果你只想做非常簡單的2D遊戲,可以先從Unity的2D教學開始,評估自己是否能接受它的複雜度。

下載與官方連結

前往官方網站 下載 Unity

UnityDownloadAssistant-5.3.7f1.exe · 696.32 KB · 連結指向軟體原廠

版本紀錄

再看 5 筆

看完整版本清單

這一版改了什麼

What's new in this version:

Improvements
- DX11: Improved texture upload performance for compressed, floating point ant RGBA32 formats
- IL2CPP: Added an option to link.xml files to ignore missing assemblies
- iOS: Added iPhone 7 and 7+ entries to the device enum
- Networking: Ping implementation for IPv6
- VR: Update Oculus GearVR to version 1.7.1
- VR: Update Oculus to version 1.9
- Windows Store: Windows Extension SDK references will now be automatically added to Assembly-CSharp projects

Fixes
- 2D: Fixed an assert message "importer.GetNPOTScale() == TextureImporter::kNPOTKeep" showing when creating sprites in Advanced mode. Creating sprites now ignores TextureImporter's non power of two settings if the texture is already a power of two
- AI: Fix for regression where a pushed passive NavMeshAgent would sometimes move to its origin after navmesh carving
- AI: Fixed an issue where NavMeshAgent remaining distance property would be wrong right after setting the agent destination to the same polygon
- AI: Fixed an issue where NavMeshAgent would sometimes teleport right after NavMeshObstacle carving
- Android: Audio - Fixed glitches on GearVR audio when Best Latency is selected
- Android: Fix for crash on returning from Handheld.PlayFullScreenMovie
- Android: Fixed a crash on Android when using the Frame Debugger
- Android: Fixed an issue where projects without audio could stop external audio sources
- Android: Fixed build time regression when using the rResources folder
- Android: Fixed device screen clear bug on Vivante GC1000 GPUs andwhen using OpenGL ES 2.0GLES2 API
- Animation: Deleting an Override controller that was previously set as the runtime controller no longer resets the animator state machine memory
- Animation: Fixed a crash when changing AnimatorOverrideController during interrupted transition
- Animation: Fixed an issue where having animations with a mixed number of bones in a controller, and having Write Defaults to false would throw errors
- Animation: Fixed thea crash when triggering a newly created animation clip at runtime
- Animation: Fixed the OverrideController memory leak
- API Updater: Fixed a crash when updating Boo/UnityScript scritpts with empty "else" blocks
- API Updater: Fixed crashes / issues with paths containing either "exe" or "dll" in any part other than the file extension
- Asset Management: Assets added using AssetDatabase.AddObjectToAsset will no longer change their name when the project is saved
- AssetBundles: Fixed thean issue that error sometimes happens when LoadAssetAsync and UnloadUnusedAsset is called before prefab is instantiated
- AssetBundles: Fixed an issue where calling Resources.UnloadUnusedAssets while loading an AssetBundle with AssetBundleRequest.LoadAssetAsync caused an error &and stopped the asset from being loaded properly
- AssetBundles: Fixed AssetBundle.LoadFromFile usage with Application.streamingAssetsPath on Android
- Audio: Fixed a crash when/after building for standalone with empty project with several audio clips
- Audio: Fixed a memory leak when quickly loading and unloading lots of audio assets
- Cache Server: Fixed an issue where cache server could crash due to unhandled EEXIST error when creating directory
- Camera: Fixed an issue where rectviewport rect was ignored when using SetTargetBuffers
- Core: Added support for loading serialized files stored with 5.5.0a4
- Core: Assets added using AssetDatabase.AddObjectToAsset will no longer change their name when the project is saved
- D3D11: Take into account ColorSpace (linear/gamma) when capturing screenshots
- Deployment: Enabling free license users to access experimental builds
- DX11: Fixed bad GPU skinning interaction with tessellation shaders, crashesd some drivers
- DX11: Take color space (linear/gamma) into account when capturing screenshots
- Editor Tests: Added first pass assemblies to be picked up by the editor tests runner
- Editor: Exceptions from PostProcessBuild callbacks now properly introduce errors to the build
- Editor: Fixed a crash when registering undo for a null object
- Editor: Fixed an issue where 'sub-assets' could appear in the wrong order in the Editor or change order when saving
- Editor: Fixed an issue where a project with no Library folder could raise a warning stating that the project was made before 5.0
- Editor: Fixed an issue where ColorPicker color was darker than the actual color picked in Linear color space
- Editor: Fixed Cef focus issue caused by multiple webview refreshes
- Editor: Fixed crash when trying to connect a GameObject to a prefab with no root GameObject set
- Editor: Fixed issue where objects in Inspector Preview appeared darker in Linear color space
- Editor: Fixed sa crash caused by leading and/or trailing slashes in MenuItem names
- Editor: Fixed the recursive directory copy problemsituation
- Editor: Fixed editor not starting properly Javascript PackageManager now supports with UNC paths on Windows
- Fixed HoloLens touch injection for flat apps
- Editor: Fixed syntax error in user-agent header string generated by API requests within Unity web views
- GI: Fixed a crash in Reflection Probe component when multiple scenes are used
- GI: Fixed an issue whereby the bake got stuck if the object was positioned far from the origin
- Graphics: Don't re-upload textures to the graphics device when a quality change is requested and the pixel data is unavailable. This applies to textures loaded from asset bundles unloaded with AssetBundle.Unload (false)
- Graphics: Fixed a couple of bugs in the CPU mipmap generation (2D & 3D) for floating point texture formats: RHalf, RFloat, RGHalf, RGFloat, RGBAHalf, RGBAFloat
- Graphics: Fixed a crash in the Editor when material and shader properties weren't updated correctly
- Graphics: Fixed a crash that would in some cases happen after Material.CopyPropertiesFromMaterial
- Graphics: Fixed a crash when blend shape value is changed for an object with cloth component
- Graphics: Fixed crashes on very large texture imports
- Graphics: Use Renderer::GetTransform() when calculating local AABB so that static batched renderers return the reference transform correctly
- Graphics: Correctly unregister external native textures
- GUI: Fixed an issue where GUI::DrawTexture appeared darker than GUI::DrawTextureWithTexCoords when in Linear color space
- IL2CPP: Allow now Monitor.TryEnter to correctly obtain a previously taken lock that has been released, which did not work in some cases
- IL2CPP: Corrected some calls to HasValue on nullable types, which could return true when the nullable does not have a value
- IL2CPP: Corrected some calls to HasValue on nullable types, which could return true when the nullable does not have a value
- IL2CPP: Corrected the behavior of the is operator when used with a struct embedded in a parent generic class
- IL2CPP: Corrected the stack state handling during code conversion for some box opcodes
- IL2CPP: Fixed IPEndPoint on IPv6 network
- IL2CPP: Fixed the poor performance of string.Intern()
- IL2CPP: Generate C++ code properly now for two structs that contain arrays of each other as fields
- IL2CPP: Generate proper C++ code for some cases involving array parameters passed by reference
- IL2CPP: Prevent a stack overflow during code conversion which can occur for mutli-dimensional arrays with generic types
- IL2CPP: Properly marshal delegates when they are fields of a struct
- IL2CPP: Removed an unnecessary assert when GC.Collect(1) is called. The call will still have no impact though
- IL2CPP: Rename the types.h file to be il2cpp-string-types.h to avoid the possibility of is conflicted with a user-defined header file
- IL2CPP: Use the no-strict-overflow flag to compile generated C++ code on gcc and clang based compilers so that we match the integer overflow behavior of C#
- IL2CPP/Windows Store: Allow non-blocking sockets to work properly on 64-bit builds
- IL2CPP/XBboxOne: Prevent the C++ compiler from crashing while compiling the IL2CPPCompilerCalculateTypeValues.cpp file for some projects. This file was just too large in these cases, so IL2CPP will notw generate multiple smaller files instead
- Input: Mouse position is now updated but not clamped on wWindows when outside of game window
- Input: Work around an issue where cursor would disappear on touch based devices like Surface Pro 4
- iOS: Added missing iOSTargetOSVersion enum entries
- iOS: Building from GUI now uses a project relative path if the location is under the project folder
- iOS: Corrected the default setting for bitcode on the XCTest target to fix a linker error
- iOS: Disabled certain Xcode debugging features in the project template causing memory usage to grow
- iOS: Fixed a crash due to linker error in simulator on startup in some cases certain Unity releases
- iOS: Fixed a crash when killing the app while a WWW Rrequest was in flight
- iOS: Fixed an issue where InputField.onEndEdit was called from an active InputField
- iOS: Fixed an issue where Touch.deltaTime was incorrectly returning zero when device had been on for approximately 30 days or more
- iOS: Fixed an issue with App store submissions with Xcode 8 when application is not using camera APIs (WebCamTexture)
- iOS: Fixed iOS 10 simulator crash
- iOS: Fixed on-screen keyboard input for Chinese (Simplified) Pinyin 10 Key keyboard
- iOS: Fixed simulator crashes when device was rotated
- iOS: Fixed the appearance of apps freezing when locking/unlocking the device
- iOS: Fixed the run loop mode warning on iOS 10 devices
- iOS: Names for new iOS devices when selecting Unity Remote device
- Kernel: Fixed a crash resulting from redo after revert
- Kernel: Fixed a crash resulting from undo after reverting prefab
- Kernel: Fixed rounding error so Mathf.MoveTowardsAngle always reaches target angle
- Linux Standalone: Fixed an issue where pressing 'Alt' incorrectly reset Input.mousePosition
- Linux: Fallback to NET_WM_ICON for setting custom player icon
- Mono: Corrected a number of possible hangs with SSL sockets when the Unity Editor entered and exited the play mode. These hangs often showed up in the AuthenticateAsClient method. (759719, 759191, 733920)
- Mono: Fixed a crash in compute_class_bitmap when using reflection
- Mono: Fixed a crash in find_method_in_metadata which can occur on startup
- Mono: Use an IPv4 address (if one exists) before an IPv6 address for .NET remoting connections
- Mono/IL2CPP: Corrected a rare deadlock in the C# lock implementation
- Networking: Fixed starting a server cashes on libwebsocket_service_fd
- Networking: ReliableFragmented channel stops working after client has disconnected, then reconnects
- OS X: Fixed HTTPS support for WWW/UnityWebRequest when Mac App Store receipt validation is on
- OS X: Fixed memory leak in joystick input handling code
- OS X: Fixed Screen.currentResolution.refreshRate being always 0
- OS X Player: The OSX standalone player now allows to switch out of the application by using Cmd+Tab when running in fullscreen mode
- OS X: Fixed a crash when building for OS X in certain circumstances to do with paths to splash screen and icon
- Particles: Fixed an issue where playing the scene with more than 270 particle prefabs caused a crash
- Plugins: Fixed an issue where DLL plugins with non-lowercase extensions cause the architecture platforms panel not to be displayed
- Prefabs: Fixed some issues and crashes related to undo-ing the creation of prefabs and prefab connections
- Shaders: Fixed frac(constant) sometimes being mis--compiled
- Shaders: Fixed shader compiler bug which could have caused errors in GLSL shaders that might crash the GPU on OSX
- Shaders: Fixed some cases of inout struct variables with COLOR semantic members wrongly translating into GLES2.0
- Shaders: Fixed transparent shader writing into DepthNormals texture, because material sometimes cache RenderType setting
- Shaders: Fixed UNITY_APPLY_FOG not working as expected if an expression is passed as fog coordinate
- Textures: Correctly unregister external native textures
- Tizen: Fixed a problem with UnityPluginLoad() not working
- tvOS: Fixed 2nd stage splash screen
- tvOS: Fixed allowed scripting implementations and architectures in player settings
- UAP: Fixed an incorrect resolution being reported when the composition scale changed and the game window was minimized
- UAP: Fixed the incorrect language being returned when system language was Spanish(Argentina)
- UI: Fixed a memory leak caused by IntermediateRendererstemporary renderer objects not being cleaned up
- UI: Fixed a race condition in UI mesh processing leading to rare crashes
- UI: Fixed a random crash in SyncElement caused by unknown parent canvas
- UI: Fixed an issue with animating canvas properties not applying
- UI: Fixed an issue with Canvas sorting order being incorrect under certain cases
- UI: Fixed issue where Canvas/UI appeared darker when camera was disabled and color space was set to Linear
- UI: Fixed issue with OnPointerEnter event firing after touch ends
- UI: Fixed the issue with double rendering of world canvas in the Editor
- UnityWebRequest: Fixed a possible freeze when using custom download handler script
- VCS: Fixed a problem when moving folders in the project view end up with errors and inconsistent state between local file state and VCS state
- VCS: Stop a C++ method being called during C# constructor and serialization (which is a scripting warning as it is unsafe to do this)
- VR: Fixed a crash at startup on GearVR if Focus is lost very close to the time or the app starting
- VR: Fixed a crash when an invalid Oculus plugin is used. Throws warning instead
- VR: Fixed different particle shader transparencies between editor and build when splash screen is active
- VR: Fixed HoloLens touch injection for flat apps
- VR: Removed an audio output warning when Unity Audio is Disabled
- WebGL: Fixed asset bundles memory usage at loading time, preventing some content to run on 32-bit browsers
- WebGL: Fixed browser lock-up when profiling
- WebGL: Fixed Code Blob memory leak
- WebGL: UnityWebRequest.downloadProgress now returns the actual progress as opposed to 0
- WebRequest: Fixed a possible freeze when using custom download handler script
- WebRequest: Allow empty headers as that is in general valid
- WebRequest: Allow setting Accept-Encoding header from scripting at users own risk
- WebRequest: More correctly follow the HTTP Specification for sending POST data during a Redirect
- Windows Standalone: Custom image will be correctly shown in screen selector dialog when building to directory with non-english letters
- Windows Standalone: Fixed a regression where "touch up" events would be lost when occurring outside window bounds
- Windows Store: Fixed a bug where mouse scroll wheel was returning inverted values
- Windows Store: Fixed a potential crash on Xbox One when retrieving advertising id
- Windows Store: Fixed a rare deadlock when recursively calling InvokeOnAppThread and InvokeOnUIThread many times
- Windows Store: Fixed an assert that happened on startup on Xbox One in debug builds
- Windows Store: Fixed touch screen keyboard input not working on UWP
- Windows Store: Fixed Unity PDB files not getting included into built .appxsym package
- Windows Store: Fixed Xbox Live SDK not being automatically referenced by C# scripts if installed on the machine
- Windows Store: Gamepads (with UsagePage/Usage 0x0001/0x0005) will correctly connect to an application now. Usually these are device connected via bluetooth. Previously only joysticks (with UsagePage/Usage 0x0001/0x0004) would connect. You can check UsagePage/Usage of the device by right clicking Properties on the device->Hardware->HID-compliant game controller->Properties->Details->Hardware Ids. For ex., gamepads will contain an item "HID_DEVICE_UP:0001_U:0005) . You might need to delete Package.appxmanifest, because there's a new item for HID device
- Windows Store: UnityEvent.Remove listener will work correctly when .Net Native is enabled. Previously events were not removed as expected
- Windows Store: When updating Windows Phone 8 application to Windows Phone 8.1/10.0, player prefs will be auto updated if the following condition is met - UnityPlayer.upp file exist, but playerprefs.dat file doesn't exist in LocalFolder
- Windows: Added safety check when receive new window size with zero values, make minimum value 1, otherwise functions like CreateDepthStencilView will fail
- Windows: System resolution or orientation changes are now detected and responded to accordingly
- WWW: Make Dispose asynchronous to prevent freeze or performance drop, as it might be costly