Forum rules - please read before posting.

Version 1.36 - ActionList parameters, better assets, and head-turning

edited July 2014 in Official news
Another big update - lots of little things and a couple of big uns.  The main things:

ActionList parameters

Bit of a complex feature, but should be very useful.  Let's say you're making a Hidden Object game, and each time the player clicks on a hidden sprite, you want the sprite to disappear, the Hotspot to be de-activated, and an item to be removed from the Inventory (assuming the Inventory is used to store a list of hidden items).  Previously, you'd have to create Actions that do these things for each and every hidden object in the scene.  But now, you can use parameters to create a "generic" ActionList that performs these tasks on different objects / items each time.

These work just like function parameters, if you're familiar with programming.  Cutscenes and ActionList assets can now use parameters in place of GameObject, Inventory items, and Variables.  When the list is run from the Engine: Run ActionList action, specific objects / items / variables can be sent to it.

ActionList asset improvements
Assets can now be run in parallel, and in the background, just like their scene-based counterparts can.  Also, there's no longer a need to copy/paste object ID numbers: just drag an object into the field, and an ID will be automatically generated.  There's also a handy new button that searches your build scenes for the referenced object, if that scene isn't already open.

Character head turning
Legacy and Mecanim engines only - you can now get Characters to turn their head independently of the rest of their body.  You can also get the Player to look at the active Hotspot, Grim Fandango-style.  See the manual for more, and the demo game has also been upgraded to make use of this feature.

Loading screens
A dedicated scene can now be used as an "interim" screen between scenes - see the Settings Manager.  Useful for games that have complex scenes that take a few seconds to load.

And the rest:

Upgrade notes:
Audio volumes have been converted to decimals: Reset options data in the Settings Manager to revert to default values
  • Added: ActionList parameters: define generic parameters to be used by Actions in Cutscenes and asset-based ActionLists
  • Added: Ability to assign a scene as a "loading screen" when transitioning between proper scenes - set in Settings Manager
  • Added: Option in Variables Manager to display realtime Variable values while the game is running
  • Added: Input: Check Action - use to detect Input button presses and axis values
  • Added: New movement method: "Straight To Cursor" - Player moves towards cursor in a straight line when button / tap is held
  • Added: Button to asset-based Actions to ping an object once it's ConstantID number has been stored
  • Added: Multiple ActionList assets can run at once
  • Added: ActionList assets can be set to run in background
  • Added: Character: Face object Action can be used to just turn a Character's head (3D only)
  • Added: Ability for Player to turn head to face active Hotspot - (3D only)
  • Added: Option for Slider menu elements to use a centred "block" texture to mark the slider's value
  • Added: Option for Slider menu elements to use their full width for value display
  • Added: Warning messages when trying to export game text when in Web Player platform (Unity's security measures prevent this)
  • Added: Warning messages to Scene Manager if the chosen Pathfinding method is incompatible with the perspective settings
  • Added: Hotspot: Change interaction Action can now be used by ActionList assets
  • Added: Ability to copy and paste individual Menu Elements
  • Added: Option for ArrowPrompts to disable Hotspots when active (on by default)
  • Added: Click textures to Menu Buttons
  • Added: Option for InventoryBox menu elements to list Inventory items by name, not by icon
  • Added: New menu position type: Above Player
  • Added: Choice of using right-click to de-select the active Inventory item, or examine it, if Inventory items are examine-able
  • Added: Engine: Run ActionList Action can now play from an arbitrary Action in an ActionList asset
  • Changed: GameObjects can now be dragged onto asset-based Actions (ConstantID numbers are handled automatically)
  • Changed: Slider values are now be changed by clicking the appropriate position along the width
  • Changed: A slider's value is now a decimal, rather than an integer between 0 and 10
  • Changed: To link a Global Variable to a slider menu element, the Variable must be a Float, not an Integer
  • Fixed: Menus sometimes displaying incorrectly in WebPlayer mode
  • Fixed: Sound objects set to "Play on awake" momentarily playing at full volume before being set to correct volume
  • Fixed: Flickering of subtitle menus when multiple speech lines are played consecutively
  • Fixed: Clicking a Hotspot twice in ChooseHotspotThenInteraction mode causing the Interaction to run instantly
  • Fixed: Hardware cursor not displaying over Hotspots if a replacement is not provided
  • Fixed: Depth of 2D characters being reset to zero when multiple FollowSortingMap scripts are active
  • Fixed: GameCamera not resetting instantly when loading a game if the cursor has an influence on it
  • Fixed: Not being able to jump if Player prefab is switched mid-game
  • Fixed: Hotspot icons not displaying in "Unity 2D" mode
  • Fixed: 2D NavMesh "holes" not being recognised if the NavMesh is not placed at the scene's origin
  • Fixed: Direct-controlled Players occasionally continuing to move during cutscenes
  • Fixed: Large menus displaying over screen borders if an aspect ratio is enforced in Settings Manager
  • Fixed: "Set as active" button on 2.5D GameCameras no longer working
  • Fixed: Menus set to display "During Gameplay" momentarily disappearing when a non-blocking ActionList plays
  • Fixed: Occasional error when deleting Interaction icons from Cursor Manager
  • Fixed: Various issues with demo scenes
  • Fixed: Typo in Conversation inspector


  • I've noticed that every time I update AC, I lose all my Input settings, tags and layers - is there any way to prevent this or fix it moving forward?
  • Fantastic work - now I can finish the 2.5d tutorial! Thank again :)
  • Sounds great! I can really see myself putting the genericized Actionlist to good use. And ofcourse very happy to have the loading screens :)

    All seems well so far, only thing is when making a GameCamera2D I get an error sometimes, though it seems to be of little consequence to successfully compiling and running the game.

    UnassignedReferenceException: The variable _camera of GameCamera2D has not been assigned.
    You probably need to assign the _camera variable of the GameCamera2D script in the inspector.
    AC.GameCamera2D.SetProjection () (at Assets/AdventureCreator/Scripts/Camera/GameCamera2D.cs:181)
    AC.GameCamera2D.SnapToOffset () (at Assets/AdventureCreator/Scripts/Camera/GameCamera2D.cs:195)
    GameCamera2DEditor.OnInspectorGUI () (at Assets/AdventureCreator/Scripts/Camera/Editor/GameCamera2DEditor.cs:85)
    UnityEditor.InspectorWindow.DrawEditor (UnityEditor.Editor editor, Int32 editorIndex, Boolean forceDirty, System.Boolean& showImportedObjectBarNext, UnityEngine.Rect& importedObjectBarRect, Boolean eyeDropperDirty) (at C:/BuildAgent/work/aeedb04a1292f85a/Editor/Mono/Inspector/InspectorWindow.cs:1124)

    @diehappygames - don't update those preference files ;) it's best to leave all those unchecked when upgrading.
  • @hedgefield: Thanks for the alert - it's not a major issue, but does prevent the camera from being set up correctly.  I'll have a 1.36a release out soon - will wait to see if any other issues crop up first.
  • Hi Chris, you can explain with an examples the use of ActionList parameters? Thanks for all!  :)>-

  • The demo scenes are kind of strange, I'm afraid to upgrade. The 2d version of Brian has taken place of the Robot in my demo scene. Also, the 3D version of Brian sits backwards on the chair now. Is this on purpose or is something kind of wonky going on?
  • This:

        ActionList parameters

    THANKS! :)

    @joshuabogart are the 2D demo managers loaded?
  • Haha, facepalm... L-). Yup, the 2D manager was loaded in the 3D demo. Thanks, update works perfect so far.
  • Recorded ConstantID......So great!
  • Great update, without any problems!  :-bd
  • edited July 2014
    Hey Chris. I added a camera, added a script and then ended up deleting it, now I'm getting this error. 

    UnityException: Input Axis  is not setup.
     To change the input settings use: Edit -> Project Settings -> Input
    GameCameraThirdPerson.FixedUpdate () (at Assets/AdventureCreator/Scripts/Camera/GameCameraThirdPerson.cs:168)

    It's referencing this line of code "Vector2 inputMovement = new Vector2 (Input.GetAxis (spinAxis), Input.GetAxis (pitchAxis));"

    and can't build. Been work gin great up until this. Just reimported AC, didn't help. Any ideas? Thanks. 

    Update_ I fixed it by creating a new scene manager. Thanks

  • @marcob: I appreciate it's a rather difficult feature to understand.  I plan on making a tutorial soon.
  • edited July 2014
    Hi Chris,

    very good update, I was waiting for multiple asset based actions list to run in parallel, this is a great feature.

    I spent a lot of time doing the merge because I tried to optimize calls of references in actions by using GetAssetFile in each actions and call this function in the creation of the action list instead of the Run function which is called at runtime (and searching references at runtime is not a good thing for mobiles).

    But in this update you use AssignValues which can do the same thing. Will it be possible to integrate the thing that AssignValues is called only in the creation of actionList and not in Run of every action ??

    Same way for optimisation, can you remove all calls to : GameObject.FindWithTag (Tags.player).GetComponent <Player>() and replace it with : KickStarter.getPlayer and in KickStarter class : 

    private static Player currentPlayer = null;
        public static Player getPlayer
                    return currentPlayer;
                    if (GameObject.FindWithTag(Tags.player))
                        currentPlayer = GameObject.FindWithTag(Tags.player).GetComponent<Player>();
                        return currentPlayer;
                    return null;
    and set new reference to currentPlayer when ResetPlayer function is called. This is a good optimisation to get the current player.

    And please can you add : base.Run() and base.Skip() and base.End() in all your actions files ? Because if you want to call instructions for each actions when they run or stop, this is very useful to do it only once in Action.cs.

    Thanks Chris
  • Unless I'm missing something, the "Player Vicinity" hotspot detection method is still not working with 2D in v1.36b. I have my player and hotspots setup and working fine under the mouseover method, but once I switch to "Player Vicinity" hotspot labels no longer show up no matter how close I get, nor can I interact with them anymore. I created a game object child to the player with the detect hotspots script attached, and I tried using a sphere collider trigger as per the manual, and then a circle collider 2D trigger after that didn't work, but no change.

    My interface settings are "Direct", "Mouse and Keyboard" and "Context Sensitive" in case that's of any help for troubleshooting...
  • @DieHappyGames: I need to update the manual, but you do need a Circle Collider 2D (with Trigger) rather than a Sphere Collider, as you've done.  Have you assigned the child object to the Player Inspector's Hotspot detector child field?
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.