Unity: mga batayan, arkitektura at pag-develop sa C#

May-akda: IT Sectr Nai-publish: 2026-05-02 Oras ng pagbabasa: 9 min

Unity — ay isang cross-platform game engine para sa paglikha ng 2D at 3D application na may suporta sa compilation para sa mobile platform, desktop at console. Ito ay ginagamit pareho para sa pag-develop ng laro at para sa non-gaming application sa arkitektura, automotive at retail. Ayon sa Unity Technologies, 2025, higit sa 70% ng mobile games sa top 1000 ng App Store ay ginawa sa Unity. C# — ay ang pangunahing programming language ng engine, kung saan isinusulat ang game logic, components at editor scripts.

Mga pangunahing punto

  • Unity — cross-platform game engine na may suporta sa 2D, 3D, AR at VR
  • C# — pangunahing wika para sa pagsulat ng game logic, components at editor scripts
  • Component-based architecture — ang pag-uugali ng objects ay binuo mula sa components (MonoBehaviour)
  • Asset Store — pamilihan na may ready-made models, textures, tunog at plugins
  • Mobile compilation — builds para sa iOS at Android na may optimization para sa ARM architecture

Ano ang Unity?

Unity — ay isang development environment para sa mga laro at real-time application na nilikha ng Unity Technologies noong 2005. Ang engine ay sumusuporta sa 27 platform, kabilang ang iOS, Android, Windows, macOS, PlayStation, Xbox, Nintendo Switch at WebGL. Ayon sa Unity Gaming Report (2024), noong 2023 mahigit 3 bilyong mobile game ang pinatakbo buwan-buwan sa Unity.

Ang pangunahing tampok ng Unity ay ang component-oriented architecture. Bawat object sa scene ay isang walang laman na container (GameObject) kung saan idinaragdag ang mga component na tumutukoy sa pag-uugali nito: rendering, physics, tunog, animation at user logic. Ito ang nagpapakilala sa Unity mula sa hierarchical engine tulad ng Unreal Engine, kung saan ang pag-uugali ay tinutukoy ng class inheritance.

Ayon sa Statista (2025), ang Unity ay may 48% ng market ng game engine para sa mobile games, na higit sa Unreal Engine (15%) at sariling solusyon (37%). Ang engine ay pinipili ng indie studio dahil sa mababang entry barrier at ng malalaking publisher dahil sa flexibility ng compilation pipeline para sa iba't ibang platform.

Arkitektura ng Unity: scenes, objects at components

Ang arkitektura ng Unity ay batay sa apat na pangunahing konsepto: scenes, GameObjects, components at prefabs. Ang pag-unawa sa hierarchy na ito ay kinakailangan para sa epektibong pagtatrabaho sa engine.

Scenes at GameObjects

Scene — ay isang container na naglalaman ng lahat ng object ng game level o estado ng application. Bawat scene ay may sariling set ng GameObjects, light source, camera at audio source. Ang paglipat sa pagitan ng scenes ay ginagawa sa pamamagitan ng SceneManager.LoadScene().

GameObject — ang pangunahing building block ng Unity. Wala itong visual na representasyon o default na pag-uugali — ito ay isang walang laman na node sa hierarchy ng scene. Lahat ng pag-uugali at anyo ay idinaragdag sa pamamagitan ng components. Halimbawa, para maging visible ang GameObject, idinaragdag ang MeshRenderer; para sumunod sa physics — Rigidbody.

MonoBehaviour components

MonoBehaviour — ay ang base class para sa lahat ng custom scripts sa Unity. Nagbibigay ito ng lifecycle: Awake (tinatawag kapag na-load ang object), Start (bago ang unang frame), Update (bawat frame), FixedUpdate (bawat physics step) at OnDestroy (kapag nasira).

Bawat component ay maaaring makipag-ugnayan sa ibang component sa parehong GameObject sa pamamagitan ng GetComponent<T>(). Ito ay nagbibigay-daan sa paglikha ng modular systems: halimbawa, ang Health component ay maaaring maging independyente sa Movement component, ngunit pareho silang maaaring tumugon sa mga event sa pamamagitan ng UnityEvent.

Prefabs

Prefab — ay isang template ng GameObject na naka-save sa project bilang isang asset. Ang pagbabago sa prefab ay awtomatikong nalalapat sa lahat ng instances nito sa scenes. Ito ang sentral na mekanismo ng reusability sa Unity na nagpapabilis ng iterations at nagbabawas ng bilang ng errors.

Ang prefabs ay sumusuporta sa nesting (Nested Prefabs): ang isang prefab ay maaaring maglaman ng ibang prefabs, na bumubuo ng hierarchy. Halimbawa, ang prefab ng kotse ay maaaring maglaman ng prefabs ng gulong, makina at katawan, bawat isa ay may sariling components at settings.

Mga halimbawa ng C# code sa Unity

Tingnan natin ang isang basic component ng paggalaw ng karakter sa C#. Ang script na ito ay nagpapagalaw ng object pasulong kaugnay sa kasalukuyang rotation nito at nagpo-proseso ng input ng user.

csharp
using UnityEngine;

public class PlayerMovement : MonoBehaviour
{
    public float speed = 5f;

    void Update()
    {
        float move = Input.GetAxis("Vertical");
        Vector3 direction = transform.forward * move;
        CharacterController controller = GetComponent<CharacterController>();
        controller.SimpleMove(direction * speed);
    }
}

Ang method na Update() ay tinatawag bawat frame. Ang Input.GetAxis ay nagbabasa ng vertical control, ang SimpleMove ay nag-aapply ng paggalaw na isinasaalang-alang ang physics. CharacterController — isang built-in na Unity component na humahawak ng collisions nang hindi kailangang magsulat ng collision physics.

Halimbawa ng script para sa paghawak ng collisions at pagbibigay ng damage:

csharp
using UnityEngine;

public class DamageHandler : MonoBehaviour
{
    public int health = 100;

    void OnCollisionEnter(Collision collision)
    {
        if (collision.gameObject.CompareTag("Enemy"))
        {
            health -= 10;
            if (health <= 0)
            {
                Destroy(gameObject);
            }
        }
    }
}

Ang method na OnCollisionEnter ay tinatawag ng physics engine kapag ang GameObject ay bumangga sa ibang object. Ang paghahambing sa pamamagitan ng tag (CompareTag) ay tumutukoy kung saan eksaktong naganap ang collision. Ang approach na ito ay nagbibigay-daan sa muling paggamit ng DamageHandler component para sa player, mga kaaway at masisirang object nang hindi binabago ang code.

Pag-develop ng mobile games sa Unity

Unity ay nagbibigay ng specialized tools para sa pag-optimize ng mga laro sa mobile devices na may limitadong resources. Ang pangunahing direksyon ng optimization ay kinabibilangan ng memory management, pagbawas ng bilang ng draw calls at pag-adapt sa iba't ibang screen resolution.

Pag-optimize ng performance

Para sa mobile platforms, nag-aalok ang Unity ng Asset Bundles — isang content packaging system na naglo-load ng resources on demand, na nagbabawas sa initial size ng application. Ito ay lalong mahalaga para sa mga laro na may maraming level o karakter, kung saan ang pag-load ng lahat ng assets nang sabay-sabay ay hindi posible dahil sa mga limitasyon ng app stores.

Ang Unity Profiler ay nagbibigay-daan sa pagsusuri ng paggamit ng CPU, GPU at memory sa isang tunay na device sa pamamagitan ng ADB (Android) o USB (iOS) connection. Ayon sa Unity Documentation (2025), ang pag-optimize ng bilang ng draw calls sa 100–300 sa mobile devices ay nagbibigay ng stable na 60 FPS sa mid-range devices.

Touch input at UI

Para sa mobile games, ang Unity ay gumagamit ng Input System na nag-aabstrak ng touch control, accelerometer at gyroscope sa ilalim ng unified API. Ang virtual joysticks, swipes at taps ay nako-configure sa pamamagitan ng Input Action Assets nang hindi nagsusulat ng touch processing code.

Ang UI system ng Unity (uGUI) ay sumusuporta sa Canvas Scaler para sa awtomatikong pag-adapt ng interface sa iba't ibang screen ratio. Ang Canvas Scaler component na may Scale With Screen Size mode ay ginagarantiyahan na ang mga button ay hindi lalabas sa labas ng screen sa mga tablet at smartphone.

Compilation para sa iOS at Android

Ang compilation ng mobile games sa Unity ay ginagawa sa pamamagitan ng Build Settings window. Para sa Android ay kinakailangan ang Android SDK at NDK, Unity ay gumagawa ng Gradle project na kino-compile sa APK o AAB. Para sa iOS ay kinakailangan ang Xcode — ang Unity ay gumagawa ng Xcode project na may Objective-C/Swift wrapper, na pagkatapos ay kino-compile sa pamamagitan ng Apple.

IL2CPP — isang compilation option na nagti-transpile ng C# code sa C++ at pagkatapos ay sa native ARM code. Ayon sa Unity Benchmark (2024), ang IL2CPP ay nagpapataas ng performance ng 15–25% sa iOS at Android kumpara sa Mono, ngunit pinapataas ang compilation time at laki ng binary file.

Paghahambing ng Unity sa ibang engine

Unity ay inihahambing sa Unreal Engine at Godot bilang pangunahing alternatibo sa market ng game engines. Ang pagpili ay depende sa uri ng proyekto, kwalipikasyon ng team at target platforms.

KriteryaUnityUnreal Engine 5Godot 4
WikaC#C++ / BlueprintsGDScript / C#
GraphicsBuilt-in / URP / HDRPNanite + LumenSariling renderer
Mobile optimizationNapakahusay (70% mobile games)Mabuti (AAA port)Mabuti (magaan na engine)
Entry barrierMababaMataasMababa
LisensyaPersonal / Pro / Enterprise5% royalty (hanggang $1M)MIT (libre)

Para sa mobile games, ang Unity ay nananatiling industry standard dahil sa flexible rendering system (URP — Universal Render Pipeline) na nag-o-optimize ng graphics para sa mobile GPUs na may limitadong computing power. Ang URP ay awtomatikong nagbabawas ng bilang ng rendering passes at pinagsasama ang shaders para mabawasan ang GPU load.

Ang Unreal Engine 5 ay nagbibigay ng mas mahusay na kalidad ng graphics (Nanite para sa geometry, Lumen para sa lighting), ngunit nangangailangan ng mas malakas na hardware at mas maraming karanasan ng team. Ang Godot ay umaakit sa open source code at maliit na laki ng engine, ngunit may mas kaunting ready-made assets at mas maliit na market ng specialists.

Unity para sa non-gaming application

Unity ay aktibong ginagamit sa labas ng game development — sa arkitektura, automotive industry, retail at edukasyon. Ang real-time visualization (RT3D) ay nagbibigay-daan sa paglikha ng interactive 3D presentations, simulators at product configurators.

Sa automotive industry, ang Unity ay ginagamit para sa paglikha ng digital twins ng mga sasakyan at HMI (Human-Machine Interface) systems. Ang Mercedes-Benz at BMW ay gumagamit ng Unity para sa prototyping ng dashboard panels at multimedia systems bago pa man ilabas ang physical prototype.

Sa retail, ang Unity ay ginagamit para sa product configurators: IKEA (virtual furniture arrangement), Nike (pag-customize ng sapatos) at Audi (car configurator) — lahat ng proyektong ito ay binuo sa Unity. Ang user ay maaaring magbago ng kulay, materials at equipment ng produkto sa real-time, nakikita ang resulta sa 3D.

Para sa non-gaming projects, ang Unity ay nagbibigay ng special tools: AR Foundation (para sa ARKit at ARCore), Pixyz Plugin (para sa import ng CAD models) at Unity Reflect (para sa synchronization sa Revit BIM models). Ang kumpanya ay aktibong bumubuo ng Unity Industry direction, na kinabibilangan ng cloud services para sa corporate clients.

Mga Madalas Itanong

Mahirap bang matutong magtrabaho sa Unity para sa isang baguhan?

Unity ay itinuturing na isa sa mga pinaka-accessible na game engine para sa mga baguhan dahil sa malawak na documentation, libreng Unity Learn courses at malaking komunidad. Para magsimula, sapat na ang malaman ang basics ng C# at maunawaan ang principles ng component-based architecture. Karamihan sa mga baguhan ay gumagawa ng kanilang unang laro sa loob ng 2–3 buwan.

Maaari bang gumawa ng 2D games sa Unity?

Oo, ang Unity ay may kumpletong 2D pipeline: Sprite Renderer, 2D Physics (Box2D), Tilemap para sa paggawa ng levels mula sa tiles at 2D Animation para sa skeletal animation ng sprites. Maraming sikat na 2D games, kabilang ang Hollow Knight at Cuphead, ay ginawa sa Unity. Ang 2D tools ay naka-embed sa engine nang hindi kailangan mag-install ng plugins.

Magkano ang halaga ng Unity para sa mobile development?

Unity Personal ay libre sa taunang kita hanggang $200 libo. Ang Unity Pro ay nagkakahalaga ng $2,040 bawat taon bawat developer at kasama ang advanced profiling tools, cloud compilation at priority support. Para sa mobile development, ang functionality ng Personal ay sapat para sa karamihan ng indie projects.

Paano naiiba ang Unity sa Cocos2d game engine?

Cocos2d — ay isang 2D framework na may suporta sa C++, Lua at JavaScript, na nakatutok sa simpleng 2D games. Ang Unity ay isang kumpletong 3D/2D engine na may editor, visual tools at suporta sa 27 platforms. Ang Cocos2d ay sikat sa Asia para sa hypercasual games, ang Unity ay isang universal choice para sa anumang genre.

Sinusuportahan ba ng Unity ang AR at VR?

Oo, ang Unity ay may built-in na suporta para sa AR at VR sa pamamagitan ng AR Foundation (ARKit + ARCore), XR Interaction Toolkit at OpenXR. Ang VR projects tulad ng Half-Life: Alyx (technical demonstration) at VRChat ay ginawa sa Unity. Ang engine ay sumusuporta sa lahat ng pangunahing VR headsets: Meta Quest, HTC Vive, Valve Index at PlayStation VR.

Konklusyon

  • Unity — cross-platform engine para sa 2D/3D games at real-time application sa C#
  • Arkitektura ay batay sa scenes, GameObjects, MonoBehaviour components at prefabs
  • C# — tanging wika para sa game logic, components at editor extensions
  • Mobile optimization — IL2CPP, Asset Bundles, URP at Profiler para sa iOS at Android
  • Paghahambing — lider ang Unity sa mobile market (48%), Unreal sa AAA, Godot sa indie
  • Non-gaming application — arkitektura, automotive, retail at interactive 3D presentations
  • Entry barrier — mababa, may libreng Unity Learn courses at malaking komunidad

Gagawa kami ng mobile application na turnkey

Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.

Pag-usapan ang proyekto

Basahin din