Achievement System (made with UdonSharp) ## Contents ### Example.prefab Sample prefab. It includes 4 achievements: * Interact * Pickup * forward into area (Player Trigger Enter) * Got 3 above achievements ### Scripts/AchievementSystem.cs This is core of system. It update "Notification Canvas" and play sound. ### Scripts/Achievement.cs Each achievment. It has "Key", "Label", "Icon" and so. It defines what happen when player achieve it. ### Animations/ Animations for notification canvas. You can custom it. ### Example Assets/AchievementIcons/ Sample icons. You can change resolution and other properties of image. This package includes achievement-base.png; the base image. I made inactive achievement icons with to grayscale and down to brightness 60%. (ImageMagick `-type Grayscale -modulate 60`) Original file is AchievementIcons.kra (for Krita users) ## Requirements * VRChat Creator Companion `UdonSharp` template ## How to use Place Example.prefab to Scene. Unpack prefab it. Custom it. You can set `Achievement SE`. ### How to add new achievement You need * Key: unique internal name of achievement * Label: name of achievement for player * achievement icon * uGUI RawImage result icon (When have the result canvas) Set above variable to UdonBehaviour Achievement.cs and set the udon behaviour to Achievements[] of AchievementSystem. ### Trigger of achievement To fire "achievement" event: call `achievementUdonBehaviour.SendCustomEvent("FireAchievement");` for the individual achievement. OR call `system.FireAchievement(int index);` to AchievementSystem. OR call ``` systemUdonBehaviour.SetProgramVariable(index); systemUdonBehaviour.SendCustomEvent("CustomEvent_FireAchievement"); ``` to AchievementSystem. (OR do the same operation on plain udon or cyan trigger etc...) ### Achievement Dependency Achievement has Requirements[] (array of dependent achievement keys). To make chained achievement, set true to "Auto Fire". ## Lisence CC0
CC0
¥0
¥0
¥0
¥0
¥0
¥0
¥1,000
¥1,300
¥100
¥0
¥500
¥0