Forum rules - please read before posting.
Tech questions during the weekend? Drop in on the community Discord channel!

Version 1.73 - Improved performance, Action upgrades, toggle-able Inventory interactions

edited February 11 in Official news

The first update of 2021 brings many fixes and minor improvements, with a focus on performance and optimisation. This does, however, mean this update has a sizeable "Upgrade notes" section - please take the time to read it carefully if you make use of cusom scripts, particularly Actions.

A big thanks to all those who helped test the release, and as ever, back up before updating!

Action upgrades

This is more of a good-housekeeping improvement, but Actions now make use of properties to declare their title, category, and number of sockets. This changes the "official" way to write custom Actions - though the majority of existing custom Actions should still work. If you encounter issues with custom Actions, or you want to upgrade them anyway, you can learn more about the necessary changes here: https://www.adventurecreator.org/tutorials/action-systems-v173-update

Performance and optimisation

Exact improvements will vary between projects, but users should generally see improved load times. Game-saving can now optionally be moved to a separate thread, which is recommended if you Autosave during gameplay. Optional Addressable support for saveable assets also means that you can do without the need for Resources folders.

Inventory interactions

Standard and Combine inventory interactions can now be disabled/enabled at runtime, using the new "Inventory: Change interaction" Action. Keep in mind, however, that this only applies to instances of an item that are currently in the Player's posession - it won't affect items that aren't currently being carried.

GameObject variables

Variables can now be declared as variables, with Global variables able to record prefabs, and Local/Component variables able to record both prefabs and scene objects.

And the full changelog:

«13

Comments

  • Version 1.73.0

    Upgrade notes

    • For a guide to upgrading custom Actions to v1.73, see here: https://www.adventurecreator.org/tutorials/action-systems-v173-update
    • Action.End() has been replaced with Action.GetNextOutputIndex() - use to return the output socket index, not an ActionEnd class
    • Action constructors have been replaced with Title, Category and Description properties
    • Action.AfterRunningOption() function is deprecated - define an Action's number of output sockets with the NumSockets property
    • The iSaveFileHandler interface now requires a SupportsSaveThreading method
    • The SaveFile constructor now longer has an "isAutoSave" parameter
    • The ability to save in Json format has been removed from the Settings Manager - to do this manually, override the SaveSystem.FileFormateHandler class with FileFormatHandler_Json
    • As inventory interactions are now possible for Container elements, the "Prevent interactions?" property must be checked for previous behaviour
    • The MainCamera's ConvertToMenuSpace, ConvertRelativeScreenSpaceToUI, RightVector and ForwardVector functions are now static
    • The Settings Manager's forceAspectRatio bool has been replaced with the aspectRatioEnforcement enum
    • InventoryBox elements of type "Hotspot Based" no longer include the Inventory item it's displaying items for unless the item has a Combine Interaction with itself
    • Changes made to Character walk and run sounds are no longer automatically recorded in save-games - use the Footstep Sounds and Remember Footstep Sounds components to do so
    • Changes made to Character portrait textures are no longer automatically recorded in save-games - use the Remember Portrait component on the AC wiki to do so
    • The SaveSystem script's UnloadVariablesData now takes an additional bool parameter
    • The InvItem class's combineID and combineActionList Lists are now deprecated - access the combineInteractions List instead
    • The InvItem class's RunDefaultInteraction, GetFirstStandardIcon, GetLabelPrefix, and GetFullLabel functions have been moved to the InvInstance class

    Actions

    • Changed: Action.End() has been replaced with Action.GetNextOutputIndex() - use to return the output socket index, not an ActionEnd class
    • Changed: Action constructors have been replaced with Title, Category and Description properties
    • Changed: Action.AfterRunningOption() function is deprecated - define an Action's number of output sockets with the NumSockets property

    ActionLists

    • Added: Reduction to ActionList asset and AC scene filesizes
    • Added: The Actions copy buffer will now survive scene changes (Unity 2019.2 and later)
    • Added: Ability to set the width of Action nodes in Unity's Project Settings
    • Added: Ability to toggle the display of multiple ActionList Parameters at once in the ActionList Editor and Inspectors
    • Added: Context menu items to scene-based ActionLists to manually backup and restore Action data (Unity 2019.2 and later)
    • Changed: The default interface's ActionLists are now created from scratch when using the New Game Wizard
    • Fixed: ActionList Editor window's "View/Action" menu sometimes displaying incorrect Action names
    • Fixed: Right-click menus in the ActionList Editor window appearing when the mouse is over an Action
    • Fixed: Component Variable parameters not being able to be set by ActionList asset files

    Inventory

    • Added: Individual Standard and Combine Interactions of Inventory items can now be disabled by default
    • Added: "Inventory: Change interaction" Action - use to toggle the state of a held Inventory item's Standard and Combine Interactions
    • Added: Inventory item String properties now support multi-line editing
    • Added: Ability for Label menu elements set to "Inventory property" to display an item's amount
    • Added: Ability for Label menu elements set to "Inventory property" to reference items set through script
    • Added: Ability to define empty slots in a Container's initial list of items if "Can re-order items in Menu?" is checked
    • Added: "Do nothing" option to the Cursor Manager's "When inventory selected" setting
    • Added: Ability to re-arrange an Inventory item's "Combine" interactions
    • Changed: The InvItem class's combineID and combineActionList Lists are now deprecated - access the combineInteractions List instead
    • Changed: The InvItem class's RunDefaultInteraction, GetFirstStandardIcon, GetLabelPrefix, and GetFullLabel functions have been moved to the InvInstance class
    • Fixed: The "Inventory: Add or remove" Action not adding the set number of items if the amount exceeds the item's Slot Capacity
    • Fixed: The Inventory Manager's "Pass Hotspot as GameObject parameter?" field not showing at all times
    • Fixed: Issues with drag-and-drop inventory behaviour when using Unity UI-based Inventory menus
    • Fixed: Incorrect "Count" values displayed when listing a Player's Inventory items in their Inspector
    • Fixed: Occasional crash when creating Recipes if an "ActionList on create" is defined
    • Fixed: Multiple issues related to Inventory when "Select Interactions by" is set to "Cycling Cursor And Clicking Hotspot"
    • Fixed: Inventory items not being immediately assigned to the default category once one is created
    • Fixed: Multiple instances of an Inventory item being able to appear even if its "Can carry multiple?" property is unchecked

    Saving

    • Added: Option to use a separate CPU thread when recording save-game files
    • Added: Ability to rely on Addressables when saving asset references in save-game files
    • Added: Option to avoid taking save-game screenshots when Autosaving
    • Changed: The SaveFile constructor now longer has an "isAutoSave" parameter
    • Changed: The iSaveFileHandler interface now requires a SupportsSaveThreading method
    • Changed: The "Take screenshot when saving?" checkbox has been replaced with a popup field
    • Changed: The ability to save in Json format has been removed from the Settings Manager - to do this manually, override the SaveSystem.FileFormateHandler class with FileFormatHandler_Json
    • Changed: The SaveSystem script's UnloadVariablesData now takes an additional bool parameter
    • Fixed: Issues when loading save files from a scene's OnStart cutscene
    • Fixed: Save components with "Retain in prefab?" checked not correctly assigning ID values to Prefab Variants
    • Fixed: Minor issues related to loading Json save files
  • Characters

    • Changed: Changes made to Character walk and run sounds are no longer automatically recorded in save-games - use the Footstep Sounds and Remember Footstep Sounds components to do so
    • Changed: Changes made to Character portrait textures are no longer automatically recorded in save-games - use the Remember Portrait component on the AC wiki to do so
    • Fixed: Sprite-based NPCs not referrring to their initial rotation for their facing direction if "Turn root object in 3D?" is checked

    Menus

    • Added: InventoryBox elements of type Custom Script now react to the setting of its OverrideContainer property
    • Added: Ability to override the active cursor icon when hovering over Toggle, Slider and Cycle menu elements
    • Added: Function to the Menu class to get an element associated with a Unity UI GameObject
    • Changed: The Menu property "Ignore cursor clicks?" has been renamed to "Ignore input?" to better reflect its purpose
    • Changed: Unity UI prefabs are now only spawned when they are requested, to reduce initial loading times
    • Changed: As inventory interactions are now possible for Container elements, the "Prevent interactions?" property must be checked for previous behaviour
    • Changed: InventoryBox elements of type "Hotspot Based" no longer include the Inventory item it's displaying items for unless the item has a Combine Interaction with itself
    • Fixed: Error when subscribing to the OnEnableInteractionMenus custom event
    • Fixed: Items displayed in Container menus disappearing when the Menu transitions off
    • Fixed: InventoryBox elements of type Container ignoring the "Prevent interactions?" property
    • Fixed: Position issue with Unity UI-based menus that have "Smooth movement?" enabled
    • Fixed: Inventory item names displaying in Hotspot labels when selected items are hidden from menus
    • Fixed: "Unity UI In Scene" Menus running click events twice per single-click
    • Fixed: Button elements that shift other elements not being able to be set invisible if "Only show when effective?" is checked
    • Fixed: Issue with "Per-option textures?" option for Cycle elements that are linked to PopUp variables
    • Fixed: DialogList elements "'Already chosen' highlight colour" not being applied in Unity UI-based Menus
    • Fixed: Menu hover sounds playing repeatedly if input is set to be ignored
    • Fixed: Menu display issue in WebGL

    Cameras

    • Added: Ability to enforce a minimum aspect ratio, preventing pillarboxing on widescreens
    • Changed: If a GameCamera2D has no target assigned, but is constrained to a background sprite, then it will still adhere to the background's boundaries
    • Changed: The MainCamera's ConvertToMenuSpace, ConvertRelativeScreenSpaceToUI, RightVector and ForwardVector functions are now static
    • Changed: The Settings Manager's forceAspectRatio bool has been replaced with the aspectRatioEnforcement enum
    • Fixed: GameCamera2D camera types not being moveable by external scripts even if its two Lock boxes are checked
    • Fixed: Errors if an AC scene is run without the presence of an AC MainCamera
    • Fixed: Camera snapping if mid-transition when replacing the Player character
  • Speech and text

    • Added: Ability to prevent the user from skipping speech text until it has completed scrolling
    • Added: Ability for skipping speech to result in speech only being skipped until the next-found "wait" token
    • Added: Game text referenced by objects spawned using the "Object: Add or remove" Action are now included in the Speech Manager's "Gather Text" process
    • Added: Improved debug information in the event that a CSV import fails due to a column count mismatch
    • Added: Prefabs assigned in the "Object: Add or remove" Action are now searched for translatable text by the Speech Maanger
    • Added: Ability to translate default save and autosave filenames
    • Changed: The Speech Manager's "Skipping speech first displays currently-scrolling text?" checkbox has been replaced with a "If skip while scrolling" popup
    • Fixed: Lipsync speech files not being loaded if "Reference speech files" is set to "By Addressable"
    • Fixed: Speech sometimes being skippable due to user input even when marked as permanent with the [hold] token
    • Fixed: Characters not respecting [wait] and [wait:X] speech tokens when playing talking animations
    • Fixed: ActionList assets referenced directly by the Scene Manager not being included in "Find references" and "Gather text" processes

    Interactions

    • Added: Ability to examine Hotspots while an Inventory item is selected
    • Added: Ability to determine whether a Hotspot's centre-point overrides its icon position, facing position, or both
    • Added: The automatic closing of Interaction menus after running a background Interaction is now optional
    • Fixed: Unhandled 'Use' Button GetFullLabel functions returning an empty string
    • Fixed: Characters facing a Hotspot with the "Character: Face object" Action not always accounting for the Hotspot's centre-point override
    • Fixed: "Hide Hotspots with no suitable interaction?" option causing Hotspots to be disabled when an Inventory item is selected
    • Fixed: Issue with Player vicinity-based Hotspot detection when a nearby Hotspot is removed from the scene
    • Fixed: "Defined interactions deselect active item?" setting having no effect when using Choose Interaction Then Hotspot mode

    Pathfinding

    • Added: Ability to pre-bake NavMesh holes into 2D NavMeshes, for improved 2D scene initialisation times
    • Fixed: Movement issues with characters that turn before walking when a non-zero "Pathfinding update time" is set

    Cursor

    • Added: Ability to re-arrange Interaction icons in the Cursor Manager
    • Added: The display of the selected item's "count" can be disabled by supplying a negative "Display count size" value
    • Fixed: Issue with drawing item counts when using Hardware cursor rendering
    • Fixed: Cursor Manager Interaction icons showing incorrect API references

    Timeline

    • Added: Shapeable Timeline Track - use to control Shapeable group values in Timeline
    • Fixed: "Head turn" Timeline tracks sometimes not affecting the bound character

    Variables

    • Added: Ability to define Variables of the type GameObject
    • Fixed: Option-linked Variables values being modified upon loading a save game recorded when they were previously unlinked
    • Fixed: Issue with Local and Component Variable values when skipping ActionLists that increase their value
    • Fixed: Variables Manager not listing all defined presets if the first is deleted
    • Fixed: Bulk-created Variables not always saving correctly
    • Fixed: Custom script references made to Variables becoming unlinked after loading a save file

    Active Inputs

    • Added: Individual Active Inputs now support multiple game-states
    • Fixed: Active Inputs not respecting an ActionList asset's "Can run multiple instances?" property

    Audio

    • Added: Ability to assign Audio Mixer Groups to individual Music and Ambience tracks
    • Added: Ability to play audio from a specific AudioSource when using the "Sound: Play one-shot" Action
    • Fixed: Conflict between the "Sound: Change volume" Action and the Footstep Sounds component's "Volume variance" slider
    • Fixed: Audio clips from the Footstep Sounds component not being able to overlap each other

    Misc

    • Added: Minor performance improvements
    • Added: Ability to filter Objectives by Title or Description
    • Added: Ability to reference objects by Addressable name when using the "Object: Add or remove" Action to instantiate prefabs
    • Added: Option to have the required PersistentEngine object be created from scratch, as opposed to being spawned from a Resources prefab
    • Added: Ability to run a Conversation prefab that is not in the scene by overriding its options in the "Dialogue: Start Conversation" Action
    • Added: The "Input: QTE" Action's "Target # of presses" field now accepts Integer parameters
    • Added: Ability to search for references made to Objectives in the Inventory Manager
    • Changed: The "Object: Add or remove" Action will now allow multiple instances of a prefab to be spawned, provided it has no Remember Transform component configured
    • Fixed: Triggers parented to Draggable objects not detecting other children of the same Draggable in v1.72.0
    • Fixed: Draggable object "Let go" ActionLists running automatically upon re-entering a scene
    • Fixed: Issue with Music and Ambience playback if "Loop overlap time (s)" is non-zero
  • Thanks Chris, addresses several problems we're having with our game!

    HOWEVER

    I'm finding that when AC loads my scenes that have Unity UI in Scene present, said UI is turned off (disabled) - it's getting no instructions from actionlists or the menu manager to make it so ... I've yet to try enabling it via the on start custscene, but I thought I'd flag this up (almost) straight away.

  • Ooh, this looks like a big 'un - good work Chris. Always make backups, folks.

  • @MartynEm Thanks for the report - what is the Menu's "Appear type"? Can you create a new thread with details/screens in Technical Q&A?

  • Thank you, Chris! I haven't tested all new features yet, but I'll work through them soon. A few questions:

    (1) Is it possible for a hotspot label to display the item name/interaction when container interactions are enabled? The label works fine for the regular inventory, but not when the items are in a container.

    (2) Is it possible to have an action to check where the items in an interaction are currently stored? Example: if I use a battery on a torch in the inventory, my actionlist would remove both the battery and the torch from the inventory and add a new powered torch item to it. If the items are in a container, though, I'd like to remove both items from the container instead and add the powered torch to the container. I would also need to check for other permutations, like selecting the battery from the inventory and clicking on the torch in the container.

    (3) I'm not entirely sure why, but since the update, running the game in the unity editor is very, very slow. The frame rate is much lower to begin with, but it drops even more when there's text scrolling on the screen. No issues whatsoever if I run a build though - it still plays very smoothly.

  • @Rairun

    Is it possible for a hotspot label to display the item name/interaction when container interactions are enabled?

    What does the label show instead? Can you share screens of your menu / element properties in a new thread?

    Is it possible to have an action to check where the items in an interaction are currently stored?

    It would be possible through scripting. Please create a new thread and I'll provide some sample code.

    I'm not entirely sure why, but since the update, running the game in the unity editor is very, very slow.

    In every scene, or just specific scenes? Use Unity's Profiler window (with Deep Profile enabled) to see where the issue lies. Share screens in a new thread and I'll examine them.

  • I'm having the same performance issue as @Rairun, so I'll try to contribute some profiler shots to that thread too.

  • Thanks for the update, Chris! Appreciate the option to use Addressable and rely less on the Resources folder.

  • The now-traditional week-later minor release:

    Version 1.73.1

    • Added: Option to cycle backwards through Cycle menu elements with a right-click
    • Added: Ability to run DialogueOption ActionLists in the background
    • Added: "Run now" button to the Conversation component's Inspector
    • Added: Improved performance when viewing menus in the non-default language
    • Added: The Highlight component now works with HDRP Lit materials (Unity 2019.3 or later)
    • Added: Parameter support for AnimationClip fields in the "Character: Animate" and "Object: Animate" Actions when using the Legacy animation engine
    • Fixed: Linked-Global Variables not syncing their values before being transferred to Parameters using the "ActionList: Set parameter" Action
    • Fixed: Multiple instances of an inventory item being placed in the Player's Inventory if one is swapped from a Container
    • Fixed: "Unity UI In Scene" menus with an "Appear type" of "Manual" being disabled when the scene begins
    • Fixed: 2D GameCameras not accounting for enforced aspect ratios when relying on Background constraints
    • Fixed: Editor slowdown at runtime when Hierarchy icons are enabled
    • Fixed: Issue when attempting to stack inventory items
  • It seems like the integration with Ultimate Character Controller is broken with UCC version 2.3. Will this release also fix that integration ?

    Thanks

  • Hello, the option "List expected animations?" to show de name of the ".anim" files do not work for me now (Unity 2019.4.20f1 and AC 1.73.1). I push on the small arrow and it don't show de list of names expected. It is not a problem for me because I have other project and I know the names expected but the usefull option to show the names don't work for me. Regards and congrats for this increible asset.

  • @kotor: The release is separate from the integration, but the integration has now been upgraded to work with UCC 2.3.

    @mltato: Recreated - thanks for the alert, I'll remedy this. In the meantime, the Console will at least report any missing animations when they're supposed to be played.

  • Thanks for upgrading to work with UCC 2.3

  • I was trying to update to AC 1.73 from package manager but keep getting back version 1.72.4. The way I am checking is opening the changelog. Strange enough, the package manager shows 1.73.

  • It sounds like you've encountered the same issue with Unity's Package Manager as discussed in this thread.

    Try KWaldt's suggestion in that thread, or downloading with Unity 2018 via the Asset Store and copy/pasting the files into your project.

  • Here is what I did to fix it.

    • Upgraded it to unity 2020.2.5.f1
    • Re-import the AC package from package manager.

    This time it updated with AC 1.73.1

    Thanks

  • Is the latest release not compatible with the Unity 5.6? Currently, it doesn't work on Unity 5.6 on my pc and there are 133 compiler errors. Which version of Unity should I upgrade to? Thanks

  • The minimum compatible Unity version is 2017.4.34. This should be listed on its page in the Asset Store.

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Welcome to the official forum for Adventure Creator.