English
GameArchitecture is a package made by Latif Yılmaz. It will make it easier for you to make games in Unity. It has many software and technical tools for developers.
This small document will simply introduce you to the features. So let's start!
Simply drag the
GameArchitecture<version>.unitypackage
file under the Packages folder into Unity. If you want, you can continue by opening the file you downloaded directly as a project on Unity.
Game Manager
It is the game control center in general. Adjustments such as language, recording, features that should be present in each scene are made. Tag name is "GameManager".
Keeps properties such as what state the game is in (Menu, In Game, Battle, Market, Paused etc.) It has optional Don't Destroy feature. It is also used for scene transitions.
Allows you to manage some adjustments of the game. Such as adding, deleting, changing a new language or adding, deleting, checking PlayerPrefs.
It does not require you to write additional code as it shows them by providing an easy interface.
Camera Manager
GameArchitecture Camera comes with many dynamic modes. You can change it with one click according to the type of your game.
Kameranın takip edeceği hedefi belirlemenize yarar.
Transform
componenti alır.
The camera makes sharp movements as it follows the target. You can set the Smoothness setting below 1 to provide a smoother follow-up.
It serves to change the camera mode. There are 3 different options.
AlwaysTarget
Sets the camera to continuously follow the target object you selected. Recommended for Top-Down 2D games.
AlwaysTargetWithLimit
Its logic is the same as AlwaysTarget. Only with this mod you can set certain limits on X and Y positions.
TargetEdgeScrolling
As soon as the target goes out of the camera in X and Y positions, it determines a new area with a linear movement and aligns the environment according to the given offset.
Allows you to set the coordinate directions that the camera will follow for target.
UI Manager
Adjustments of UI Elements are made with this script. For example, opening a menu or updating the character's score in a text etc. It is located in the Canvas panel.
Tag name is "UIManager".
Audio Manager
Sounds are kept under this object with the AudioSource component. To play these sounds, it is sufficient to call the given key or index to the method.
Tag name is "AudioManager". It has optional Don't Destroy feature.
Music Manager
Musics are set under this script. Again sounds are added as well. Don't Destroy is also available so it doesn't get lost on scene change.
PlayerPrefs System
You can edit PlayerPrefs keys and values from
GameManager (Object) > Game Editor (Script)
It allows you to get easy saves in 3 data types. It has not relevant to GameArchitecture Save system.
Localization System
GameArchitecture allows you to support your game in the language you want. For this, you can create or delete the languages you want via
GameManager (Object) > GameEditor (Script)
You can also set the language instantly if you are going to change it for the editor. It is enough to write the texts you will write for languages in the .txt file in
Resources
folder.
You can write your texts by specifying a key and get texts specific to whichever language you are using with
MultiLang.GetTranslation("key")
Collider System With GUI
Adding the Collider and Collision system with GameArchitecture is simple. You can create more dynamic structure by controlling events with Collider for Trigger or Collision.
Collider Type
Trigger: Trigger doesn't impede physical movement and it is generally used to perform events according to the movements of a player or any object for the specified area. It appears red on the GUI. For example, by putting this where the character needs to win the game, you can use Trigger to show the events that will happen when it gets there.
Collision: It inhibits physical movement. It appears blue on the GUI. It is usually used as an obstacle but can be used to summon events such as Trigger. For example, if the character has started to push the box, it can be used to bring animation.
Tags
If you want your collider to be effective for specific tags, you can add it to the enter tags section in the component. If left blank, it applies to all tags.
Collider Events
Enter: It is generally used for Trigger type. Calls the specified function if an object is entered into it.
Exit: The logic is the same with Enter. It only calls the specified function when an object exits from the area.
Stay: Stay is called once per physics update for every Collider other that is touching the trigger.
Destroy Collider
It is recommended to use for trigger type. If any of the specified event types run, the collider object is deleted from the game scene. For example, when the player collects coins, it disappears.
Save/Load System for file
It is used to perform saving operations on the file. It is used with the SaveManager object.
Set Variables you want to save into Data Script. And simply save or load with Save Handler.
It saves the data under Assets/Saves. To change save settings, simply change the SAVE_FOLDER variable in SaveSystem script.
Tag name is "SaveManager"
Child Editor
You can use this component to make mass changes to the sub-objects of any object in the game scene.
- You can change the visibility of child objects in the game scene.
- You can open and close the components of child objects by typing component name as text.
Dialogue System
GameArchitecture has a ready-made dialog system. Include features such as sound by letter or word, special texts, waiting, passing, language support (etc.) Designs are also readily available. You can change it if you want.
You can edit the "Writer" script by creating boxes in the Dialogue object (prefab). You have to type the sentence directly in the sentence inputs or the key in the language .txt files (Resources folder). If the key is found, it will show according to the file. After event checks whether it will continue other dialogue box or not. You can also call up various events during the dialogue by adding different events.
Writer Special Text Effects
You can provide customizations for the texts by providing specific tags into Language file. For example;
<shake>Hello</shake>
makes the text shake.
It makes the text wave like a flag. For example;
<wobbly>Hello Player!</wobbly>
It makes the text feel like an earthquake is happening. For example;
<shake>Wooww, What's happening!</shake>
It gives a gel-like animation to the text. For example;
<jelly>Eww, that's disgusting!</jelly>
It allows the use of various emojis. You can find the emoji code list here. For example;
<sprite=6>
(😂)
You can also easily change the colors of the texts. It also works with other tags. For example;
<shake>It looks <color=red>DANGEROUS!</color><shake>
Transition Effects
There are many transition effect animations in GamerArchitecture. These can be used for scene transitions. When the "LoadScene" function in GameManager is used, it automatically uses the transition effect in the scene before and after. In order for these effects to stand on top of other UI elements, it is necessary to put the UI (Canvas) object at the bottom. Tag name is "Transition"
Türkçe
GameArchitecture, Latif Yılmaz tarafından hazırlanmış bir pakettir. Unity'de oyun yapmanızı kolaylaştıracaktır. Geliştiriciler için birçok yazılım ve teknik araca sahiptir.
Bu küçük doküman size GameArchitecture paketinin özelliklerini ve araçlarını tanıtacaktır. Haydi başlayalım!
Packages klasörü altındaki
GameArchitecture<SÜRÜM>.unitypackage
dosyasını Unity içine sürüklemeniz yeterlidir. İsterseniz direk indirdiğiniz dosyayı Unity üzerinde proje olarak açarak da devam edebilirsiniz.
Game Manager
Genel olarak oyun kontrol merkezidir. Her sahnede olması gereken dil, kayıt, özellikler gibi ayarlamalar yapılır. Etiket adı "GameManager".
Oyunun hangi durumda olduğu gibi özellikleri tutar (Menü, Oyun İçi, Savaş, Pazar, Duraklatıldı vb.) Opsiyonel Don't Destroy özelliğine sahiptir. Sahne geçişleri için de kullanılır.
Oyunun bazı ayarlarını yönetmenizi sağlar. Dil desteği ekleme, silme, değiştirme veya PlayerPrefs kontrol etme gibi...
Kolay bir arayüz sağlar. Ek olarak kod yazmanızı gerektirmez.
Camera Manager
GameArchitecture Kamerası birçok dinamik modla birlikte gelir. Oyununuzun türüne göre tek tıkla değiştirebilirsiniz.
Kameranın takip edeceği hedefi belirlemenize yarar.
Transform
bileşeni(componenti) alır.
Kamera hedefi takip ederken keskin hareketler yapar. Daha sorunsuz bir takip sağlamak için
Smoothness
ayarını 1'in altında olacak şekilde ayarlayabilirsiniz.
Kamera modunu değiştirmeye yarar. 3 farklı seçenek vardır.
AlwaysTarget
Kamerayı, seçtiğiniz hedef nesneyi sürekli takip edecek şekilde ayarlar. Top-Down 2D oyunlar için önerilir.
AlwaysTargetWithLimit
Mantığı AlwaysTarget ile aynıdır. Sadece bu mod ile X ve Y pozisyonlarına belirli limitler koyabilirsiniz.
TargetEdgeScrolling
Hedef X ve Y konumlarında kameranın dışına çıktığı anda lineer bir hareketle yeni bir alan belirler ve ortamı verilen offsete göre hizalar.
Kameranın hedef için izleyeceği koordinat yönlerini ayarlamanızı sağlar.
UI Manager
UI Elemanlarının ayarlamaları bu script ile yapılır. Örneğin, bir menü açmak veya bir metindeki karakterin puanını güncellemek vb. UI Canvas panelinde bulunur.
Etiket adı "UIManager"dır.
Audio Manager
Sesler AudioSource bileşeni ile bu nesnenin altında tutulur. Bu sesleri çalmak için verilen anahtar veya indeksi metoda çağırmak yeterlidir. Örneğin;
AudioManager.Instance.PlayClip("JumpSFX")
Etiket adı "AudioManager".
Opsiyonel Don't Destroy özelliğine sahiptir.
Music Manager
Müzikler bu komut dosyası altında ayarlanır. Yine sesler de eklenir. Don't Destroy de mevcuttur, böylece sahne değişiminde kaybolmaz.
PlayerPrefs Sistemi
PlayerPrefs anahtarlarını ve değerlerini
GameManager (Nesne) > Game Editor (Script)
içinden düzenleyebilirsiniz. 3 veri tipinde kolay kaydetme yapmanızı sağlar. GameArchitecture Dosya için Kayıt sistemi ile ilgili değildir.
Localization(Yerelleştirme) Sistemi
GameArchitecture, oyununuzu istediğiniz dilde desteklemenizi sağlar. Bunun için
GameManager (Object) > GameEditor (Script)
üzerinden istediğiniz dilleri oluşturabilir veya silebilirsiniz.
GameManager (Object) > GameEditor (Script)
üzerinden dil ekledikten sonra düzenlemek çok kolay. Diller için yazacağınız anahtar ve metinleriResources
klasöründeki .txt dosyasına yazmanız yeterlidir.
MultiLang.GetTranslation("key")
ile bir anahtar belirleyerek metinlerinizi yazabilir ve kullandığınız dile özel metinler alabilirsiniz.
GUI ile Collider Sistemi
Trigger ve Collision sistemini GameArchitecture ile kontrol etmek basittir. Collider objesini Trigger veya Collision olarak ayarlayarak hem arayüz tarafında kolaylık elde edersiniz hem de bazı olayları kontrol ederek daha dinamik bir yapı oluşturabilirsiniz.
Collider Type
Trigger: Trigger, fiziksel hareketi engellemez ve genellikle belirtilen alan için bir oyuncunun veya herhangi bir nesnenin hareketlerine göre olayları gerçekleştirmek için kullanılır. GUI üzerinde kırmızı görünür. Örneğin, bunu karakterin oyunu kazanması gereken yere koyarak, oraya ulaştığında olacak olayları göstermek için kullanabilirsiniz.
Collision: Fiziksel hareketi engeller. GUI üzerinde mavi görünür. Genellikle bir engel olarak kullanılır ancak tetikleyici olayları çağırmak için kullanılabilir. Örneğin karakter kutuyu itmeye başladıysa animasyon getirmek için kullanılabilir.
Tags
Collider objesinin belirli etiketler için etkili olmasını istiyorsanız, onu bileşendeki etiketleri gir bölümüne ekleyebilirsiniz. Boş bırakılırsa tüm etiketler için geçerlidir.
Collider Events
Enter: Genellikle Trigger tipi için kullanılır. İçine bir nesne girilmişse belirtilen metodu çağırır.
Exit: Mantığı Enter ile aynıdır. Yalnızca bir nesne alandan çıktığında belirtilen metodu çağırır.
Stay: Stay, collider'a dokunan diğer her collider için fizik güncellemesi başına bir kez çağrılır.
Destroy Collider
Trigger tipi için kullanılması tavsiye edilir. Belirtilen olay türlerinden herhangi biri çalışırsa, collider nesnesi oyun sahnesinden silinir. Örneğin, oyuncu paraları topladığı zaman kaybolur.
Dosya için Kaydetme/Yükleme Sistemi
Dosya üzerinde kaydetme işlemleri yapmak için kullanılır. SaveManager nesnesiyle birlikte kullanılır.
Data Dosyasına kaydetmek istediğiniz değişkenleri Ayarlayın. Ve sadece Save Handler ile kaydedin veya yükleyin.
Assets/Saves altında verileri kaydeder. Kaydetme ayarlarını değiştirmek için, SaveSystem komut dosyasındaki SAVE_FOLDER değişkenini değiştirmeniz yeterlidir.
Etiket adı "SaveManager"
Child Editor
Oyun sahnesindeki herhangi bir nesnenin alt nesnelerinde toplu değişiklikler yapmak için bu bileşeni kullanabilirsiniz.
- Oyun sahnesindeki alt nesnelerin görünürlüğünü değiştirebilirsiniz.
- Alt nesnelerin bileşenlerini(component) metin olarak bileşen adını yazarak açıp kapatabilirsiniz.
Diyalog Sistemi
GameArchitecture hazır bir diyalog sistemine sahiptir. Harf veya kelime başına özel ses, özel metinler, bekleme, geçme, dil desteği (vb.) gibi özellikler içerir. Tasarımlar da hazır olarak mevcuttur. Dilerseniz değiştirebilirsiniz.
Dialogue nesnesinde (prefab) kutular oluşturarak "Writer" komut dosyasını düzenleyebilirsiniz. Cümleyi doğrudan cümle girişlerine veya anahtarı dil .txt dosyalarında (Resources klasörü) yazmanız gerekir. Anahtar bulunursa dosyaya göre gösterilecektir. Olaydan sonra diğer diyalog kutusuna devam edip etmeyeceğini kontrol eder. Farklı olaylar ekleyerek diyalog sırasında çeşitli olayları da çağırabilirsiniz.
Özel Metin Efektleri
Dil dosyasına belirli etiketler sağlayarak metinler için özelleştirmeler sağlayabilirsiniz. Örneğin;
<shake>Merhaba</shake>
metne deprem etkisi verir.
Metni bir bayrak gibi dalgalandırır. Örneğin;
<wobbly>Merhaba Oyuncu!</wobbly>
Metne deprem etkisi verir. Örneğin;
<shake>Vay canına, Neler oluyor!</shake>
Metne jel benzeri bir animasyon verir. Örneğin;
<jelly>Iyy, bu iğrenç!</jelly>
Çeşitli emojilerin kullanımına izin verir. Emoji kod listesini burada bulabilirsiniz. Örneğin;
<sprite=6>
(😂)
Metinlerin renklerini de kolayca değiştirebilirsiniz. Diğer etiketlerle de çalışır. Örneğin;
<shake><color=red>TEHLİKELİ</color> görünüyor!<shake>
Geçiş Efektleri
GamerArchitecture'da birçok geçiş efekti animasyonu bulunmaktadır. Bunlar sahne geçişleri için kullanılabilir. GameManager'daki
LoadScene
işlevi kullanıldığında, sahne öncesi ve sonrası geçiş efektini otomatik olarak kullanır. Bu efektlerin diğer UI öğelerinin üzerinde durabilmesi için en altta UI (Canvas) nesnesini koymak gerekir. Etiket adı "Transition"