News Forums RAIN Release Notes RAIN v2.1 Developer tools of the Sentio Platform

This topic contains 8 replies, has 6 voices, and was last updated by  Thodi 1 year, 6 months ago.

Viewing 9 posts - 1 through 9 (of 9 total)
  • Author
  • #32873


    Hello All! The newest RAIN is here! The upgrade includes a new interface, wiki docs, and new tutorials. Get the lasest version and head over to the Tutorials page for a walkthrough and Sample Project

    To grab the latest version of RAIN please click “Check for Updates” in your RAIN menu or if you don’t have RAIN in your project download it here

    - This release is only valid for Unity 4.3 or later. It won’t work on Unity 4.2.x or earlier.
    - If I see an error message like this: ‘RAIN.Navigation.NavigationManager’ does not contain a definition for ‘instance’; change ‘NavigationManager.instance’ to ‘NavigationManager.Instance’

    RAIN 2.1 Release Notes

    - Wiki documentation has been significantly upgraded. Click on the red question mark symbol in any RAIN Editor and you will be linked to relevant help from the wiki.
    - Numerous performance improvements throughout RAIN.
    - - Reduced GC time
    - - Improved pathfinding speed
    - - Improved memory access speed
    - - Improved expression evaluation speed
    - Tree binding subtrees are now visible in the Behavior Tree editor when a “Current AI” is selected.
    - Added support for dragging/moving list items in RAIN Editor windows
    - Improved color choosers and visualization toggles throughout the RAIN Editor
    - Behavior tree editor now indicates the last return value of each node during debugging
    - Added damping time to Mecanim Motor parameters
    - Added code support for enumerating Custom Elements on the AI
    - MoveLookTarget positions are now displayed in AI memory, making movement debugging easier
    - Behavior Trees may now be placed in subfolders within the Behavior Tree folder structure. This helps organize large collections of behaviors.

    - Move action will now return success or failure based only on movement, not on facing, when both face and move targets are indicated.
    - Misc. API changes. See code comments and API docs for details.
    - Mecanim Motor UI cleaned up, now only shows parameters in use.
    - Navigation Target range is now used as a close enough distance when moving to the target
    - Behavior Tree nodes are now placed inline when added through the Behavior Tree editor, rather than at the end of the current container node.
    - gameobject(“objectname”), navigationtarget(“targetname”), and waypoints(“waypoint route/network name”) as functions usable in Expressions.

    Bug Fixes:
    - Fixed bugs with Expression evaluation
    - Fixed unary operators not parsing correctly in Expressions
    - Fixed an issue with waypoint patrol routes not resuming properly after interruption
    - Fixed an issue with jitter when using both Move and Face targets simultaneously
    - Fix for importing behavior tree XML (was not saving).
    - Removed check for incorrect animations as it won’t compile for WP8.
    - Fix for close enough distance (on Move node) not being used in some cases.
    - Misc. editor fixes and stabilization

    - The RAIN Editor now sends an anonymous ping to the update server once every 24 hours. No personal data is sent, only the RAIN version #, Unity version #, and unique device id. See the Rival Theory privacy policy ( for more information, and feel free to contact us at with any questions.



    Big up ! just say thank’s



    You’re very welcome!






    This is awsome ! I love it!
    Thanks guys!



    @Stiffer @sundayhd You’re very welcome! Let me know how everything goes!



    Hi there, thanks for the update all looks cool.
    I have installed it, with Unity 4.5 … now I am getting four compile errors:

    Assets/AI/Actions/CheckBlockingWolfTarget.cs(51,106): error CS1061: Type RAIN.Entities.Aspects.RAINAspect' does not contain a definition forForward' and no extension method Forward' of typeRAIN.Entities.Aspects.RAINAspect' could be found (are you missing a using directive or an assembly reference?)
    Assets/AI/Actions/CheckBlockingWolfTarget.cs(51,71): error CS1502: The best overloaded method match for `UnityEngine.Vector3.Angle(UnityEngine.Vector3, UnityEngine.Vector3)' has some invalid arguments
    Assets/AI/Actions/CheckBlockingWolfTarget.cs(51,71): error CS1503: Argument #2' cannot convertobject' expression to type `UnityEngine.Vector3'
    Assets/AI/Actions/CheckBlockingWolfTarget.cs(55,36): error CS0019: Operator <' cannot be applied to operands of typeobject' and `float'

    All in the code:

    using UnityEngine;
    using System.Collections;
    using System.Collections.Generic;
    using RAIN.Core;
    using RAIN.Entities.Aspects;
    using RAIN.Action;
    using System.Linq;
    public class CheckBlockingWolfTarget : RAINAction
        public CheckBlockingWolfTarget()
            actionName = "CheckBlockingWolfTarget";
        public override void Start(AI ai)
        public override ActionResult Execute(AI ai)
    		if(ai.WorkingMemory.ItemExists ("blockingWolfTargets"))
    			var currentPosition = ai.Kinematic.Position;
    			var matches = ai.WorkingMemory.GetItem<List<RAINAspect>>("blockingWolfTargets");
    			var filteredMatches = new List<RAINAspect>(matches);
    			foreach(var match in matches.ToList ())
    				var form = match.Entity.Form;
    				if(form == null)
    					matches.Remove (match);
    				//var inCombat = match.Entity.Form.GetComponentInChildren<AIRig>().AI.WorkingMemory.ItemExists ("attackTarget");
    				var nonAiWolfBehaviourScript = form.GetComponent<NonAIWolfBehaviour>();
    				if(nonAiWolfBehaviourScript.currentTarget != null)
    				var angleBetweenDirections1 = Vector3.Angle (ai.Kinematic.Forward, match.Forward);
    				var angleBetweenDirections2 = Vector3.Angle (ai.Kinematic.Forward, match.Position - ai.Kinematic.Position);
    				// if(angleBetweenDirections1 < 1f angleBetweenDirections2 < 1f Mathf.Abs(Vector3.Distance(currentPosition, match.Position)) <= 2f)
    			 	if(angleBetweenDirections1 < 1f && angleBetweenDirections2 < 1f && Mathf.Abs(Vector3.Distance(currentPosition, match.Position)) <= 2f)
    				filteredMatches.Remove (match);
    			if(filteredMatches.Count == 0)
    				ai.WorkingMemory.RemoveItem ("blockingWolfTargets");
    				return ActionResult.FAILURE;
            	return ActionResult.SUCCESS;
    		return ActionResult.FAILURE;

    Help please? Would be much appreciated … thanks … ps sorry if this question is in the wrong place.

    • This reply was modified 1 year, 6 months ago by  prime. Reason: edited to add code tags for readability


    Sorry, we meant to deprecate the method rather than just pulling it entirely. To get the forward angle of the aspect, you could do:

    Vector3 tForward = Quaternion.Euler(match.Orientation) * Vector3.forward;


    Ok, thanks … fyi we found unity 4.5 unworkably slow have rolled back to 4.3 and RAIN 2.0 … so we’ll try your suggestion down the line.

Viewing 9 posts - 1 through 9 (of 9 total)

You must be logged in to reply to this topic.