VOJUZQBDLBHF࡞Δͱ͖ʹؾΛ͚ͭͨ΄͏͕͍͍͜ͱ(PUBOEBVOJUZ!NBUUBL!
View Slide
VOJUZQBDLBHF
.unitypackage Ͱऴྃ͢ΔAssetܗࣜ
1. ~.unitypackage ΛμϒϧΫϦοΫ2. ཉ͍͠ͷ͚ͩࢦఆͯ͠import
༨ஊ
$ cp Unicache-v0.2.0.unitypackage Unicache-v0.2.0.tar.gz$ tar -zxvf Unicache-v0.2.0.tar.gz֦ுࢠΛ .unitypackage => .tar.gz ʹ͢Δͱத͕ݟΕΔ
/:guid- assetͷguid͕ϑΥϧμ໊ʹ/:guid/pathname- pathnameʹอଘઌͷpath- ྫ: Assets/Plugins/UniRx/Scripts/UnityEngineBridge/TypedMonoBehaviour.cs/:guid/asset- assetͷத (ͦͷ·Μ·ϑΝΠϧ͕ೖͬͯΔ)/:guid/asset.meta- assetͷϝλσʔλ (ͦͷ··)جຊతʹguidͰϑΝΠϧཧ=> ϑΝΠϧҠಈͯ͠guidมΘΒͳ͚Εimportඞཁ͔Ͳ͏͔ݕՄೳ
ؾΛ͚ͭͨ΄͏͕͍͍͜ͱ
Ϋϥε໊ඃΓ
ྫ:The namespace `global::' already contains a definition for `Singleton'ಉ͡Ϋϥε໊͕ෳ͋ΔͱίϯύΠϧͰ͖ͳ͍ͷͰࠔΔPlugins/Asset1/Singleton.csPlugins/Asset2/Singleton.cspublic class Singleton {}
ରॲnamespaceをつけようnamespace MyLib{public class Singleton {}}ͱͯجຊ͚ͩͲɺΒͳ͍··͍ͯ͠Δͷଟ͍ҹ
ଞͷϥΠϒϥϦΛϦωʔϜͯ͠ར༻
Plugins/Asset1/MiniJSON.csPlugins/Asset2/MiniJSON.csࠔΔ͜ͱͳ͍͕ɺಉ͡ίʔυ͕ෳόΠφϦʹؚ·Εͯແବ.ྫ:namespace Asset1 { public static class Json {} }namespace Asset2 { public static class Json {} }
ରॲ外部ライブラリは名前を変えずに外に置こうAsset1- Assets/Plugins/Asset1/*- Assets/Plugins/Asset2/*- Assets/Plugins/MiniJSON/MiniJSON.csڞ௨ͷॴʹ͓͍͍ͯΕɺ2ͭҎ߱ͷϥΠϒϥϦΛimport͢Δࡍʹڞ௨ͷϦιʔεΛແࢹͰ͖Δnamespace MiniJSON { public static class Json {} }
Plugins/MyLib/*֎෦ϥΠϒϥϦ͕ࣗͷAssetσΟϨΫτϦ (Plugins/MyLib/) ʹଘࡏ୳ͨ͠Γআ֎அΛ͢Δͷ͕໘ʹͳΔྫ:Plugins/MyLib/A/B/C/MiniJSON/MiniJSON.cs
ରॲ外部ライブラリは⾃分のAssetのフォルダ外に置こうAsset1- Assets/Plugins/Asset1/*- Assets/Plugins/MiniJSON/MiniJSON.csڞ௨ͷॴʹ͓͍͍ͯΕɺ2ͭҎ߱ͷϥΠϒϥϦΛimport͢Δࡍʹڞ௨ͷϦιʔεΛແࢹͰ͖ΔAsset2- Assets/Plugins/Asset2/*- Assets/Plugins/MiniJSON/MiniJSON.cs
ίϯύΠϧ͕͍
Assets/MyLib/Somthing1.csAssets/MyLib/Somthing2.csAssets/MyLib/Somthing3.csPluginsҎԼʹϥΠϒϥϦͱͯ͠ͷίʔυΛஔ͔ͳ͍ύλʔϯScript͕૿͍͑ͯ͘ͱɺίϯύΠϧ͕͘ͳ͍ͬͯ͘ྫ:͜ͷ͕͍ͪ
ରॲ変更しないコードはPlugins/ に置こうAssets/MyLib => Assets/Plugins/MyLibPlugins/ ϓϦίϯύΠϧͯ͘͠ΕΔ.PluginsҎԼͷίʔυʹมߋ͕ͳ͍ݶΓ࠶ίϯύΠϧΒͳ͍.ϥΠϒϥϦͳͲมߋ͕ͳ͍ίʔυ Plugins/ ҎԼ(ϓϩδΣΫτͰɺ։ൃதͷίϯύΠϧ͕ͪʹͳΓ·ͨ͠)
&YBNQMFT 5FTUͷॴ͕Θ͔Γʹ͍͘
Assets/Plugins/MyLib/Hoge.csAssets/Plugins/MyLib/README.mdAssets/Plugins/MyLib/Sample1/Sample2.csAssets/Plugins/MyLib/Sample2/Sample1.csAssets/Plugins/MyLib/Editor/Test/HogeTest.cs- (ϥΠϒϥϦͱͯ͠ͷ) ࠷ݶιʔε- Example- Test- Document͜ΕΒͷ۠Γ͕Θ͔Γʹ͘͘ͳ͍ͬͯΔͲΕΛimport͢Δ͖͔ɺਂ͍֊·Ͱݟͳ͍ͱΘ͔Βͳ͍ͳͲྫ:
ରॲ配下はトップレベルで不要・必要を分別できるようにしようAssets/Plugins/MyLib/Core/*Assets/Plugins/MyLib/Examples/*Assets/Plugins/MyLib/Documents/*Assets/Plugins/MyLib/Tests/Editor/*MyLibҎԼͷҰ൪্ͷ֊ͷνΣοΫϘοΫεͰෆཁඞཁ͕அͰ͖Δॴ͕ࡏ͠ͳ͍ͷͰΘ͔Γ͍͢͠ɺআ/Ճ͍͢͠
ফͤͳ͘ͳΔ
͜ΕɺͲͷAssetͰ͔ͭͬͯͨjar͚ͩͬʁΈ͍ͨͳঢ়گʹͳ͍ͬͯ͘…ྫ:Assets/Plugins/Android/okhttp-3.8.0.jarAssets/Plugins/Android/okio-3.8.0.jar
ରॲどのライブラリで必要なファイルかdirectoryで判別可能にしようAssets/Plugins/Android/MyLib/okhttp-3.8.0.jarAssets/Plugins/Android/MyLib/okio-3.8.0.jarຊɺґଘؔΛهड़Ͱ͖ΔԿ͔Ͱཧ͢Δͷ͕ྑͦ͞͏ґଘϑΝΠϧ͚ͩهड़͓͍ͯͯ͠ɺಈతʹऔಘ͢Δͱ͔͕ϕετͳؾ͕͢Δ
όʔδϣϯ͔Βͳ͍
ରॲVERSION.txt 置こう$ cat Assets/Plugins/Zenject/Version.txt5.4.0γϯϓϧ͚ͩͲɺόʔδϣϯ͕มΘͬͨ͜ͱΛ໌ࣔͰ͖ͯྑ͍gitʹΔ
·ͱΊ
使う側が楽になるように配布前に少し⼯夫しよう