CyanTrigger V0.4.1 Now Available for Free!
Added 2022-10-05 22:23:06 +0000 UTC
The new CyanTrigger update is now available to everyone for Free!
You can download CyanTrigger version 0.4.1 on my booth page.
I recommend reading over the documentation before getting started to learn about the interface. If you have any questions, you can ask in my Discord. If you found a bug, you can report it here.
Please make sure your VRChat SDK is up to date before importing CyanTrigger.
When updating from v0.3 to v0.4, Delete the CyanTrigger folder in your assets before importing! This includes:
- Assets/CyanTrigger
- Assets/CyanTriggerExamples
Along with this release, there are two versions:
- Default Unity Package
- VCC package
If you wish to use VCC:
- Unzip the folder anywhere outside of a project
- In the VCC settings, scroll to the bottom and click Add User Package
- Find the com.cyan.cyantrigger.0_4_1
You can now add CyanTrigger to any project using the VCC! When using Source Control, be sure to exclude the CyanTrigger Package
(CyanTrigger SDK2 Migrator will be getting an update soon)
Changes
Change logs will now also be listed on the wiki
Inspector
- Added option to name CyanTrigger programs. These do not need to be unique
- Added button at top of inspector to edit CyanTrigger comment
- Added editors for types, allowing you to create them in the inspector: Char, SByte, UInt, UShort, ULong, Vector2Int, Vector3Int, Matrix4x4, Bounds, Rect, Ray, Plane
- Using SendCustomEvent on a built in event will now show that event's parameters. Ex: OnPlayerTriggerEnter now has the player as a parameter
- Fixed the Debug "Execute" buttons in playmode to just execute actions. These can still error if the actions use event parameters.
- Variables with the same name will now display a number in brackets [] in variable selection lists to allow selecting any rather than just the first defined
- Custom Actions display its description in the inspector. All Default Custom Actions now have descriptions.
- CyanTrigger footer is now 2 lines instead of 4
- UdonBehaviour for CyanTrigger programs now has minimal information
- Fixed CyanTrigger gizmo lines drawing to objects in prefabs not in the scene
- Fixed some types not having a unique name. Ex nested enums
- Fixed local variables allowing invalid characters in the names.
- Fixed some inspector bugs that cause visual problems or render errors
New Actions and Custom Actions
- Added UdonBehaviour.IsCyanTrigger to check if an udon program is a CyanTrigger
- Added UdonBehaviour.GetCyanTriggerProgramName to get program name for CyanTrigger. This will be null if not a CyanTrigger.
- Added CustomActions for GetCyanTriggerComponent, with variants for multiple, get in children, and get in parents, and option based on program name.
- Added CustomActions for setting CyanTrigger programs enabled or toggle similar to GameObject.SetComponentActive. Has option for program name or all CyanTrigger
- Added EnumToInt action to get int versions of any enum. Note there is no way to convert back from int to enum
- Added CustomAction fixes for Mathf.SmoothDamp and Vector3.SmoothDamp
Custom Actions
- Added Utility button to CyanTrigger Editable Programs to auto create a custom action for that program with all events exposed, making it easier to create custom actions.
- Custom Action editor now shows the variables in the list to help distinguish between actions with the same name but different inputs
Compilation
- Fixed InstanceOwner gate always working even for non instance owners due to VRChat bug
- Fixed errors when creating a VERY large program (more than 512 variables or externs)
- Fixed errors trying to call SendCustomEvent to a built in Udon event before that event was processed.
- Throw compile error if SendCustomEvent to local method has wrong parameter names
Updated all example scenes
- Fixed missing reflection probe bake (auto bake lighting enabled)
- Combat training dummy now has sprite in health bar and uses Image.set fillAmount instead of modifying the transform.
- Updated Player Raycast Teleport to get the point vector in each path, and only set the object's transform once outside the if/else
- Updated player voice examples to disable collider first to ensure late joining works.
- Updated PlayerAudio example program to now work closer to SDK2's audio override. Global saves values, OnTriggerExit will set back to global or default if no global
- Copied SyncedUI into the SyncExamples scene since it relates to sync
- Updated Spawn Object and Object Pool examples to no longer have logic on the trashcans, but destroy/return logic is on the objects themselves.
- Added CyanTrigger on the ObjectPool example to auto set the object pool variable for all pooled objects.
Other changes
- Internal changes to better support the SDK2 Migrator
- Properly apply certain changes to prefabs
- Recompile CyanTriggerPrograms on import or in scene verify to ensure always valid
- Fixed UdonBehaviour with CyanTrigger Program but no CyanTriggerAsset component not showing public variable editor
- Fixed CyanTriggerAsset inspector resetting variables if program does not match program on UdonBehaviour
- Fixed adding CyanTriggerAsset from UdonBehaviour not copying public variable data