Forum rules - please read before posting.

Version 1.80 - Improved New Game Wizard, Templates and integration handling

This update makes a number of key UX changes that aim to make it more user-friendly, partiular for new users. There's a fair bit going on, so please bear with me if there are any teething problem. Any issues, let me know and we'll look into them.

Key features:

Improved New Game Wizard

The New Game Wizard gets some attention, with a smarter look that offers better descriptions and preview images for each setting. The biggest addition, however, is the incorporation of Templates - which we previously limited to a handful of packages on the Downloads page.

Templates

Templates allow you to extend your game's functionality by having AC automatically make changs to your game. These will be suggested by the New Game Wizard following your choices, but you can also use the wizard to add these to an existing project. More will be introduced in future updates, but currently the following are provided:

  • Sample Player (2D, 3D and First Person)
  • Sample scene (2D and 3D)
  • Mobile joystick
  • TextMesh Pro converter
  • Graphic Options menu
  • Nine verbs interface

AC.asmdef file

The Scripts folder now includes an "AC.asmdef" file, which solves a number of issues - the main one being that of scene ActionLists becoming corrupted if Unity is opened with compilation errors. In addition, it is now used to help AC auto-detect which Unity packages are currently-installed, allowing automatic integration with Addressables, Localization and TextMeshPro. No more having to define "..IsPresent" in the Player settings!

This file, however, will invalidate save-game files made with earlier releases. If you need to retain them, you'll need to remove it.

Manager assignment

The default "References" file is no longer included with AC, but is instead generated automatically. This means that your game's Managers will remain assigned after importing.

When opening either of the Demo scenes, their own Managers will be assigned automatically - but only temporarily. This means that you can test out the Demo scenes at any time, and return to your own game, without swapping Managers.

Parameter UI

ActionList parameters have an updated look: rather than override-able fields being listed twice, a "P" icon will now appear beside them. Click this to toggle a field's use of parameters on and off.

«1

Comments

  • Full changelog:

    Upgrade notes

    • Save-game files made before v1.80 will not be compatible with this release by default. To allow for this, remove the Script folder's AC.asmdef file
    • The Scripts folder now has an "AC" Assembly Definition file
    • The manual addition of 'IsPresent' Scripting Define Symbols is no longer required for AC's TextMesh Pro, Addressables and Localization integrations
    • The References file is now generated automatically, meaning Managers no longer need to be reassigned after an update
    • Integration scripts for Cinema Director, FaceFX and Rogo Digital LipSync has been moved to the AC wiki
    • Sliders, Cycle and Toggle menu elements no longer respond to right-clicks unless set to Custom Script
    • The OnClickConversation custom event is now triggered before a Conversation option's Actions
    • TextMesh Pro support for Menus is now a dedicated option in a Menu's properties panel
    • The Changelog file format has been changed from .rtf to .txt - the original Changelog.rtf file can be removed

    Editor

    • Added: Option to always remove existing data when modified data is found during the Speech Manager's "Gather text" process
    • Changed: The Scripts folder now has an "AC" Assembly Definition file
    • Changed: The manual addition of 'IsPresent' Scripting Define Symbols is no longer required for AC's TextMesh Pro, Addressables and Localization integrations
    • Changed: The References file is now generated automatically, meaning Managers no longer need to be reassigned after an update
    • Changed: The About window now auto-opens on starting the Editor by default, with an option to turn this behaviour off
    • Changed: The 2D and 3D Demo games no longer require their own Managers to be assigned - demo scenes will override Managers while open
    • Fixed: Scene-based ActionLists sometimes breaking if Unity is opened with a custom script error
    • Fixed: Occasional error message regarding creation of ACEditorPrefs on startup in Unity 2022 and later

    New Game Wizard

    • Added: Templates section to the New Game Wizard - use to install additional functionality to the default interface
    • Added: Ability to add Templates to an existing project with the New Game Wizard
    • Changed: The New Game Wizard has been updated, with more clear details and illustrations for each step

    Templates

    • Added: "2D sample Player" Template - provides a basic 2D Player character to help get started making 2D games
    • Added: "3D sample Player" Template - provides a basic 3D Player character to help get started making 3D games
    • Added: "First-person Player" Template - provides a basic Player character to help get started making First-person games
    • Added: "2D sample scene" Template - provides a basic 2D scene that demonstrates basic 2D workflows and features
    • Added: "3D sample scene" Template - provides a basic 3D scene that demonstrates basic 3D workflows and features
    • Added: "Nine verbs" Template - provides a recreation of the "Nine verbs" interface popularised by classic Lucasarts adventure games
    • Added: "Graphic options" Template - provides a Menu that lets the user configure the game's graphic settings
    • Added: "Mobile joystick" Template - provides on-screen joysticks that lets the user manipulate the Player and Camera on touch-screens
    • Added: "TextMesh Pro menus" Template - use to update all Menus to rely on TextMesh Pro instead of Unity UI

    Menus

    • Added: Index prefix option to InventoryBox elements
    • Added: The MenuLabel script's OverrideLabel function now works with Label elements of all types
    • Added: If a Menu is set to use TextMesh Pro for its UI elements, but no TMP component is found, it will fallback to Unity UI
    • Changed: TextMesh Pro support for Menus is now a dedicated option in a Menu's properties panel
    • Changed: Unity UI-linked slots in the Menu Manager now retain their object links to the Canvas prefab
    • Changed: Sliders, Cycle and Toggle menu elements no longer respond to right-clicks unless set to Custom Script
    • Changed: MenuCrafting and MenuInventoryBox GetItemSlot functions now return -1 if the item is not found
    • Fixed: Editor performance issues when viewing Elements with many Unity UI-linked slots in the Menu Manager
    • Fixed: AC-based Menus set to be positioned "Above Speaking Character" not respecting the "Move with character?" option
    • Fixed: Menu elements' "GetSlotIndex" function returning incorrect values when an element has multiple slots

    Hotspots

    • Added: Ability to override the property controlled by Highlight components on a per-component basis
    • Changed: If a 3D Hotspot Interacion's "Player action" is set to "Walk To", the Player now moves to the closest point on its Collider
    • Fixed: Issues with the Highlight component's auto-detection of material properties
    • Fixed: Remember Hotspot component save data affecting the state of Buttons added after the game was saved
    • Fixed: Hotspots being non-interactable when the "Hotspot detection mode" is changed from "Player Vicinity" at runtime

    Actions

    • Added: Improvements to the API for custom Actions to display fields that can be overridden with parameters
    • Added: Parameter support for the "Dialogue: Toggle option" Action
    • Added: Ability to duplicate GameObjects by referencing scene objects in the "Object: Add or remove" Action
    • Added: Ability to auto-create Component variables using the "Variable: Run sequence" Action
    • Changed: Tidied interface for overriding Action field values with parameters
    • Fixed: "Object: Teleport" Action causing 2D characters to physically rotate even if "Turn root object in 3D?" is unchecked
    • Fixed: Issues with custom Actions that use their own namespace or derive from existing Actions

    Integrations

    • Changed: The official Cinema Director Action has been moved to the AC wiki
    • Changed: The offical FaceFX integration has been removed - an equivalent script is available on the AC wiki
    • Fixed: tk2DIntegration script remaining in AC Scripts folder

    Movement

    • Fixed: Issues with 2D NavMesh hole generation if the NavMesh is parented to a GameObject with a non-unit scale
    • Fixed: 3D Characters that use a Character Controller sometimes getting stuck in the ceiling when jumping
    • Fixed: "Independant" Direct-turning mode not working correctly in 2D
    • Fixed: Fixed issues with A* pathfinding's character evasion
  • Cameras

    • Added: Ability to configure the size if the GameCamera 2D Drag camera's cushioning behaviour
    • Fixed: GameCamera 2D Drag camera not respecting its original position values
    • Fixed: First-person camera's pitch not recorded in save-game data

    Inventory

    • Added: Ability to scroll through InventoryBox elements on a loop
    • Added: Option for the "Inventory: Add or remove" Action to remove all items in a given category
    • Fixed: OnContainerClose custom event not being fired when a Container menu turns off

    Timers

    • Fixed: "Variable: Set Timer" Action's "Start" method not restarting a Timer that has completed
    • Added: Ability to set Timer values through script

    Cursor

    • Added: Ability to freeze the cursor's influence over the camera through script
    • Changed: The Unity UI Cursor component no longer controls the Canvas Sorting Order - set it manually to 100 to recreate earlier behaviour

    Save games

    • Changed: Save-game files made before v1.80 will not be compatible with this release by default. To allow for this, remove the Script folder's AC.asmdef file
    • Fixed: Save-game data sometimes not displaying correctly in the Save-game File Manager

    Misc

    • Changed: The OnClickConversation custom event is now triggered before a Conversation option's Actions
    • Changed: The Changelog file format has been changed from .rtf to .txt - the original Changelog.rtf file can be removed
    • Fixed: Objective state API references having an extra "." character
    • Fixed: Character wizard not setting a 2D character's "Turn root object in 3D?" option correctly when used in a 3D scene
    • Fixed: Footstep Sounds component playing sounds when disabled
    • Fixed: Issues with the playback of Draggable "move" sounds
    • Fixed: Various issues with QTEs
  • edited March 14

    One thing I forgot to mention: if you do delete the AC.asmdef file, you'll need to manually add TimelineIsPresent as a Scripting Define Symbol for Timeline integration - as its presence is now autodetected by the asmdef file.

  • Version 1.80.1:

    • Added: The About window now automatically checks for updates
    • Added: Parameter support for the "Hotspot: Run interaction" Action
    • Changed: Action comments are now printed in the Console before the Action is run, not after
    • Fixed: ActionList Editor's "Set favourite" command not having an effect
    • Fixed: "Active Player" option not showing in Actions when Player-switching is enabled in v1.80.0
    • Fixed: Occasional error when skipping the "Character: Move to point" Action
  • Thanks, Chris!

    I think I read that AC 1.80+ had issues with the Dialogue System integration (something related to the folder DS adds custom actions to?). I saw you and Tony were on it, but how do you recommend I update this without running the risk of breaking the instances of those actions within actionlists?

  • I'm getting this error with Version 1.80.1 Unity 2023.2.15f1

    Assets\AdventureCreator\Scripts\Templates\TMPro\Editor\TMProTemplate.cs(377,63): error CS7036: There is no argument given that corresponds to the required formal parameter 'color' of 'TMP_Dropdown.OptionData.OptionData(string, Sprite, Color)'

  • edited March 23

    @Rairun: Tony's advised me that the integration's been updated - but you'd need to remove the existing integration before importing it.

    Essentially, though, it's just a case of moving the integration's custom Actions out of the main AdventureCreator folder. Create a new Assets directory, point to it as a custom Actions folder in the Actions Manager, and move the Dialogue System custom Actions there.

    @ZcheK: Which TMPro / UI package is imported in the Package Manager, and have you manually added the TextMeshProIsPresent scripting define symbol? You can delete the file mentioned in the error without affecting AC itself in the meantime.

  • Thank you! The DS actions were updated without issues.

    I'm getting a few console warnings after updating:

    1

    Missing types referenced from component SettingsManager on game object Unblessed_SettingsManager:
        AC.EventSceneSwitch, Assembly-CSharp (1 object)
        AC.EventVariableChange, Assembly-CSharp (1 object)
    

    2

    Error loading Action ActionMultiSpriteFade.cs. 
    Exception: System.NullReferenceException: Object reference not set to an instance of an object
      at AC.AdventureCreator.AddActionsFromFolder (AC.ActionsManager actionsManager, System.String folderPath, System.Collections.Generic.List`1[T] oldActionTypes) [0x00079] in C:\Unity\Ever-After\Assets\AdventureCreator\Scripts\Managers\Editor\AdventureCreator.cs:714 
    UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
    AC.AdventureCreator:AddActionsFromFolder (AC.ActionsManager,string,System.Collections.Generic.List`1<AC.ActionType>) (at Assets/AdventureCreator/Scripts/Managers/Editor/AdventureCreator.cs:744)
    AC.AdventureCreator:RefreshActions (AC.ActionsManager) (at Assets/AdventureCreator/Scripts/Managers/Editor/AdventureCreator.cs:659)
    AC.AdventureCreator:OnEnable () (at Assets/AdventureCreator/Scripts/Managers/Editor/AdventureCreator.cs:39)
    UnityEditor.WindowLayout:LoadDefaultWindowPreferences ()
    

    3

    Error loading Action ActionCharPathFindVector.cs. 
    Exception: System.NullReferenceException: Object reference not set to an instance of an object
      at AC.AdventureCreator.AddActionsFromFolder (AC.ActionsManager actionsManager, System.String folderPath, System.Collections.Generic.List`1[T] oldActionTypes) [0x00079] in C:\Unity\Ever-After\Assets\AdventureCreator\Scripts\Managers\Editor\AdventureCreator.cs:714 
    UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
    AC.AdventureCreator:AddActionsFromFolder (AC.ActionsManager,string,System.Collections.Generic.List`1<AC.ActionType>) (at Assets/AdventureCreator/Scripts/Managers/Editor/AdventureCreator.cs:744)
    AC.AdventureCreator:RefreshActions (AC.ActionsManager) (at Assets/AdventureCreator/Scripts/Managers/Editor/AdventureCreator.cs:681)
    AC.AdventureCreator:OnEnable () (at Assets/AdventureCreator/Scripts/Managers/Editor/AdventureCreator.cs:39)
    UnityEditor.WindowLayout:LoadDefaultWindowPreferences ()
    
  • Does error 1) have any stacktrace underneath?

    Errors 2 and 3 are related to custom Actions. Create a new thread and share the code, and I'll take look.

  • Version 1.80.2:

    Upgrade notes

    • The Player script's SetHotspotHeadTurnLock function has been replaced with the LockHotspotHeadTurning property
    • The PlayerMenus script's SetManualSaveLock function has been replaced with
    • Added: "Hotspot: Check selected" Action - use to check if a given Hotspot is selected, and optionally pass it to a GameObject parameter

    • Added: If the "Menu: Update content" Action references an Objective parameter, you can now choose which text associated with the Objective gets referenced

    • Added: Ability to assign Properties to Documents and Objectives, provided they are in a Category that supports them
    • Added: The "DefaultInteraction" input is now available for Choose Hotspot Then Interaction mode
    • Added: "Toggle" option to the "Engine: Manage systems" and "Player: Constrain" Actions
    • Added: Encoding format option for text export operations in AC's Editor preferences
    • Added: "Properties" column to the Inventory item exporter
    • Changed: The Player script's SetHotspotHeadTurnLock function has been replaced with the LockHotspotHeadTurning property
    • Changed: The PlayerMenus script's SetManualSaveLock function has been replaced with the PreventSaving property
    • Fixed: Warning messages sometimes appearing in the Console when using the "Container: Check" Action
    • Fixed: Sorting Map sometimes applying incorrect values if a character's position exactly matches its bottom-most boundary
    • Fixed: Issues with Japanese characters in exported text files in Excel
    • Fixed: 2D point-and-clicking ignoring the "NavMesh search %" slider if "NavMesh search direction" is set to "Radially Outwards From Cursor"
    • Fixed: "Inventory: Check selected" Action not updating the assigned "Send to" parameter if "Include last-selected?" is checked
    • Fixed: ActionList parameters of the type "Game Object" sometimes not being set to the correct values
    • Fixed: Issues with simulated inputs when a Button is held down
    • Fixed: Player tank-turning speed not being framerate-independent
    • Fixed: Compatibility issue with TextMeshPro in Unity 2023
  • Just for anyone who updated then found all their TMPro menu text gone, you need to manually select "Use TMPro components" in your menus.

    Serves me right for not properly reading the upgrade notes!

  • Hi Chris, sorry for taking a while to get back to you, I've been busy.

    Errors 2 and 3 are related to custom Actions. Create a new thread and share the code, and I'll take look.

    I believe those two actions are in the AC Wikia (though they might be older versions). Either way, updating to AC 1.80.2 fixed the issue!

    Does error 1) have any stacktrace underneath?

    It doesn't. I copied/pasted the entire stacktrace here.

  • Are the EventSceneSwitch and EventVariableChange files present and correct in AC's /Scripts/Events/Events folder, with no duplicates, and are the Scene: Change and Variable: Change events available/used in the Events Editor?

  • edited April 1

    The files are present and in the correct folder with no duplicates, but when I try to add one of those events in the Events Editor, I get this error (I'm using Unity 2021.2.7f1 and AC 1.80.2):

    NullReferenceException: Object reference not set to an instance of an object
    AC.EventsEditorData.GetUniqueID (System.Collections.Generic.List`1[T] events) (at Assets/AdventureCreator/Scripts/Events/EventsEditorData.cs:291)
    AC.EventsEditorData.ShowEventsGUI (System.Collections.Generic.List`1[T] events, UnityEngine.Object source) (at Assets/AdventureCreator/Scripts/Events/EventsEditorData.cs:86)
    AC.EventsEditorData.ShowGUI (System.Collections.Generic.List`1[T] events, UnityEngine.Object source) (at Assets/AdventureCreator/Scripts/Events/EventsEditorData.cs:28)
    AC.EventsWindow.OnGUI () (at Assets/AdventureCreator/Scripts/Events/Editor/EventsWindow.cs:38)
    UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition) (at <0cde216a590a4d6fbc3d7db7ac203c5d>:0)
    UnityEditor.DockArea.DrawView (UnityEngine.Rect dockAreaRect) (at <0cde216a590a4d6fbc3d7db7ac203c5d>:0)
    UnityEditor.DockArea.OldOnGUI () (at <0cde216a590a4d6fbc3d7db7ac203c5d>:0)
    UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.EventDispatcher.OpenGate () (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <66054a7773f64b399021c1a3f19995a3>:0)
    UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <4c1b5f56ab12481abc458fdd69da0f26>:0)
    
  • Let's move this to a new thread in Technical Q&A.

    Are other events listed / able to be created?

    The error suggests one has somehow become corrupted. Does this occur if you swap out your Settings Manager to e.g. Demo_SettingsManager and re-open the Events Editor?

  • Version 1.80.4:

    • Added: "IsOverHotspot" Animator bool parameter to the Unity UI Cursor component - set to True when a Hotspot is selected
    • Added: "Add to front?" option to the "Document: Add or remove" Action
    • Added: "Copy From Local Variable" option to the "ActionList: Set parameter" Action
    • Added: Ability to multiply Vector3 variables with the "Variable: Set" Action
    • Added: Ability to assign an optional Render Texture to use as the basis for save-game screenshots
    • Added: Layout improvements to the About window
    • Fixed: Issues with InventoryBox elements that support looping but don't display enough items to loop
    • Fixed: Characters not respecting a Path's Y positions when its "Override gravity?" property is checked
    • Fixed: Subtitle text sometimes showing rich text tags when scrolling is skipped
    • Fixed: Issues with 2D characters if no Sprite Child is assigned
    • Fixed: Menus created from Templates not having unique IDs
    • Fixed: Issues with the Nine Verbs interface
    • Fixed: Layout issue with the "ActionList: Set parameter" Action
  • Version 1.80.5:

    • Fixed: Issues with the New Game Wizard's default interface creation
    • Fixed: Player component's "Jump speed" field not always showing when intended
    • Fixed: "Menu: Change state" Action sometimes changing the currently-selected menu element inadvertently
  • Im just curious about the toggle option under Engine - Manage systems

    Added: "Toggle" option to the "Engine: Manage systems" and "Player: Constrain" Actions

    What is the difference between toggling the movement or interactions and disabling it?

  • edited June 10

    Toggling will always change its value - from Enabled to Disabled, and vice-vera.

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.