Search Unity

  1. Megacity Metro Demo now available. Download now.
    Dismiss Notice
  2. Unity support for visionOS is now available. Learn more in our blog post.
    Dismiss Notice

ORK Framework - The complete RPG Engine for Unity 5

Discussion in 'Assets and Asset Store' started by gamingislove, Jan 15, 2014.

  1. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    @AlanGrey
    There are options for back/exit buttons in all menus, didn't enable them for the demo, as you can use the cancel key to do that :)
    And yes, that can be done with ORK. Most of the setup is the same as when creating 3D games, only that you'd use sprites and 2D colliders instead.
     
  2. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @gamingislove,

    Please please please... Direct support for Races/Species and for Multi Classes... :)
     
  3. AlanGreyjoy

    AlanGreyjoy

    Joined:
    Jul 25, 2014
    Posts:
    192
    Sweet :)

    And the buttons thing... ESC did not work and there was no cancel button. But either way, I got the gist of how it works :)
     
  4. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    ORK Framework 2.5.6 is here!
    This small update brings support for Unity 5.2 and all types of textures (e.g. RenderTexture).
    See the release notes for details.


    @AlanGreyjoy
    The right CTRL key is the cancel key, but that can be changed in the input key settings of the demo project :)
     
  5. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Key settings are easy enough to change, but I've always been a little curious -- what's the origin of ORK's unusual key settings? Right CTRL seems a strange choice for the Cancel key. I too would have expected the Escape key and/or B button on a gamepad.
     
    Last edited: Sep 18, 2015
  6. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @gamingislove ,

    Not pestering but are Races or Multiple Classes on the cards for a later release or should I just plough on and work around it?
     
  7. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    @TonyLi
    Well, the escape key is the menu call key - cancel used the right CTRL just out of a whim when I urgently knocked together the demo for ORK 1 :)

    @Duffer123
    Races in a form of combatant types are coming in one of the next updates, but there's little gameplay relevance attached to that.
    Multiple classes are not coming anytime soon, that's a pretty big system changer involving a lot of needed changes ...
     
  8. TonyLi

    TonyLi

    Joined:
    Apr 10, 2012
    Posts:
    12,670
    Thanks! Now I know. :)
     
  9. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
  10. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
    @gamingislove ,

    Noting position re Multi-Classes, Races and also Items which are also containers for other items, that their all unlikely to be directly implemented/supported, would it be possible instead to post some tutorials on these three topics on the ORK website - HowTo guides? (with work arounds, implementations etc)?

    In terms of formulas for damage calcs etc, any chance of something parsing a string (ie. "4D2-1", "12D9+1+2D6" etc) in to a numeric figure - and you giving damage or whatever values in the 'diceroll string' format? (if it helps I picked up the code below somewhere...)

    Code (CSharp):
    1. using System.Reflection;
    2. using System.Runtime.CompilerServices;
    3.  
    4. // Information about this assembly is defined by the following attributes.
    5. // Change them to the values specific to your project.
    6.  
    7. [assembly: AssemblyTitle("DiceRoller")]
    8. [assembly: AssemblyDescription("")]
    9. [assembly: AssemblyConfiguration("")]
    10. [assembly: AssemblyCompany("")]
    11. [assembly: AssemblyProduct("")]
    12. [assembly: AssemblyCopyright("")]
    13. [assembly: AssemblyTrademark("")]
    14. [assembly: AssemblyCulture("")]
    15.  
    16. // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}".
    17. // The form "{Major}.{Minor}.*" will automatically update the build and revision,
    18. // and "{Major}.{Minor}.{Build}.*" will update just the revision.
    19.  
    20. [assembly: AssemblyVersion("1.0.*")]
    21.  
    22. // The following attributes are used to specify the signing key for the assembly,
    23. // if desired. See the Mono documentation for more information about signing.
    24.  
    25. //[assembly: AssemblyDelaySign(false)]
    26. //[assembly: AssemblyKeyFile("")]
    27.  
    28.  
    29.  
    Code (CSharp):
    1.  
    2. /* File: DiceParser.cs
    3. * Classes:
    4. *   DiceInstruction - an atomic part of a die rolling code containing an expression
    5. *   DiceParser - parses and evaluates die codes (limitation: linear parsing, does not honor operator precedence)
    6. * */
    7.  
    8. using System;
    9. using System.Text.RegularExpressions;
    10. using System.Collections.Generic;
    11.  
    12. namespace DiceRoller
    13. {
    14.    
    15.     public class DiceInstruction
    16.     {
    17.         string instruction, varname = "";
    18.         List<int>dieSides = new List<int>();
    19.         int diceCount, modifierNumber = 0;
    20.         char modifier = '\0';
    21.         char rollType = 'c';
    22.         int pSign = 1;
    23.         Dictionary<string, int> varTable = null;
    24.        
    25.         /* An instruction is created by the DiceParser class while a dice code line is being parsed.
    26.          * The constructor takes the actual instruction as a string token, a modifier signed int that
    27.          * determines whether the expression result should be evaluated as a negative (this is a crutch
    28.          * since we don't have real operators or a parse tree for that matter), and a reference to the
    29.          * current variable table.
    30.          * */
    31.         public DiceInstruction(string instruct, int sign, Dictionary<string, int> varTab)
    32.         {
    33.             instruction = instruct;
    34.             pSign = sign;
    35.             varTable = varTab;
    36.             // we need to figure out what kind of instruction we are
    37.             foreach(string token in Tokenize(instruction))
    38.             {
    39.                 string tt = token.Trim().ToLower();
    40.                 if(!tt.Equals("")) try
    41.                 {
    42.                     // if this part is a number...
    43.                     int cNumber = int.Parse("0"+tt);
    44.                     if(diceCount == 0)
    45.                         diceCount = cNumber;
    46.                     else if(modifier != '\0')
    47.                         modifierNumber = cNumber;
    48.                     else
    49.                         dieSides.Add(cNumber);
    50.                 }
    51.                 catch
    52.                 {
    53.                     // if it's not a number...
    54.                     bool done = false;
    55.                     if(tt.Length == 1)
    56.                     {
    57.                         if(rollType == 'c')
    58.                         {
    59.                             switch(tt)
    60.                             {
    61.                             case("d"): case("l"): case("h"): case("u"):
    62.                                 rollType = tt[0];
    63.                                 done = true;
    64.                                 break;
    65.                             }
    66.                         }
    67.                         else if(modifier == '\0')
    68.                         {
    69.                             switch(tt)
    70.                             {
    71.                             case("e"): case("r"): case("f"): case("m"): case("s"):
    72.                                 modifier = tt[0];
    73.                                 done = true;
    74.                                 break;
    75.                             }
    76.                         }
    77.                     }
    78.                     if(!done && tt[0] != ':')
    79.                     {
    80.                         // if this is not a number and neither a die code nor a modifier, it must be a variable
    81.                         varname = tt;
    82.                         rollType = 'v';
    83.                     }
    84.                 }
    85.             }
    86.             /* debug output while parsing
    87.             Console.Write(" - > new "+instruction+": count="+diceCount.ToString()+" type="+sign.ToString()+rollType);
    88.             if(dieSides.Count > 0) foreach(int side in dieSides)
    89.                 Console.Write(" side="+side.ToString());
    90.             if(modifier != '\0')
    91.                 Console.Write(" mod="+modifier+" mnum="+modifierNumber.ToString());
    92.             if(varname.Length > 0)
    93.                 Console.Write(" var="+varname);
    94.             Console.WriteLine(" ("+instruct+")"); */
    95.         }
    96.        
    97.         public static string[] Tokenize(string equation)
    98.         {
    99.            Regex RE = new Regex(@"([a-z\:])");
    100.            return (RE.Split(equation));
    101.         }
    102.  
    103.         public int eval(int preValue, List<string> errorLog)
    104.         {
    105.             Random rand = new Random();
    106.             int myValue = 0;
    107.             //Console.Write("["+rollType+"] eval: "+instruction+" ");
    108.             switch(rollType)
    109.             {
    110.             case 'c':
    111.                 myValue = preValue + (diceCount*pSign);
    112.                 break;
    113.             case 'd':
    114.                 for(int rc = 1; rc <= diceCount; rc++)
    115.                 {
    116.                       int thisRoll = 0;
    117.                     foreach(int side in dieSides)
    118.                     {
    119.                         int dieResult = rand.Next(1, side+1);
    120.                         switch(modifier)
    121.                         {
    122.                         case('r'):
    123.                         case('s'):
    124.                             if(dieResult == side)
    125.                             {
    126.                                 int reResult = 0;
    127.                                 do
    128.                                 {
    129.                                     reResult = rand.Next(1, side+1);
    130.                                     dieResult += reResult;
    131.                                 } while (reResult == side);
    132.                             }
    133.                             break;
    134.                         }
    135.                         thisRoll += dieResult;                      
    136.                     }
    137.                     switch(modifier)
    138.                     {
    139.                     case('f'):
    140.                     case('s'):
    141.                         if(thisRoll == 1) myValue--;
    142.                         else if(thisRoll >= modifierNumber) myValue++;
    143.                         break;
    144.                     case('e'): case('r'):
    145.                         if(thisRoll >= modifierNumber) myValue++;
    146.                         break;
    147.                     default:
    148.                         myValue += thisRoll;
    149.                         break;
    150.                     }
    151.                 }
    152.                 errorLog.Add("Result: "+instruction+'='+myValue);
    153.                 //Console.Write("= "+myValue.ToString());
    154.                 myValue += preValue;
    155.                 break;
    156.             case 'v':
    157.                 try
    158.                 {
    159.                     myValue = preValue + (varTable[varname]*pSign);
    160.                     //Console.Write("= "+(varTable[varname]*pSign).ToString());
    161.                 }
    162.                 catch
    163.                 {
    164.                     myValue = preValue;
    165.                     //Console.Write("= 0 (unknown)");
    166.                     errorLog.Add("Warning: unknown variable "+varname);
    167.                 }
    168.                 break;
    169.             default:
    170.                 myValue = preValue;
    171.                 break;
    172.             }
    173.             //Console.WriteLine("");
    174.             return(myValue);
    175.         }
    176.     }
    177.    
    178.     public class DiceParser
    179.     {
    180.         // original code that was parsed
    181.         public string currentCode = "";
    182.         // plain list of all the expressions
    183.         private List<DiceInstruction>diList = new List<DiceInstruction>();
    184.         // the variable table, fill this with your variables (names in lower case)
    185.         public Dictionary<string, int> varTable = new Dictionary<string, int>();
    186.         // log of operations
    187.         public List<string>errorLog = new List<string>();
    188.        
    189.         public DiceParser ()
    190.         {
    191.         }
    192.        
    193.         // dissects a line of die code into individual expressions
    194.         public static string[] Tokenize(string equation)
    195.         {
    196.            Regex RE = new Regex(@"([\+\-\*\(\)\^\\])");
    197.            return (RE.Split(equation));
    198.         }
    199.        
    200.         // parses a dice code, for syntax reference go to: http://rpgp.org/dice
    201.         public void parse(String diceCode)
    202.         {
    203.             currentCode = diceCode;
    204.             int sign = 1;
    205.             foreach(string token in Tokenize(currentCode))
    206.             {
    207.                 string tt = token.Trim();
    208.                 if(tt.Equals("+")) sign = 1; // no op
    209.                 else if(tt.Equals("-")) sign = -1;
    210.                 else if(tt.Length > 0)
    211.                 {
    212.                     diList.Add(new DiceInstruction(tt, sign, varTable));
    213.                     sign = 1;
    214.                 }
    215.             }
    216.         }
    217.        
    218.         // evaluates the currently parsed expression
    219.         public int roll()
    220.         {
    221.             errorLog.Clear();
    222.             int result = 0;
    223.             foreach(DiceInstruction di in diList)
    224.             {
    225.                 result = di.eval(result, errorLog);
    226.             }
    227.             return(result);
    228.         }
    229.     }
    230.  
    231. }
    232.  
    233.  
    Code (CSharp):
    1.  
    2. /* File: Main.cs
    3. * Classes:
    4. *   MainClass - simple console application that shows off the DiceParser class
    5. * */
    6.  
    7. using System;
    8.  
    9. namespace DiceRoller
    10. {
    11.     class MainClass
    12.     {
    13.         public static void Main (string[] args)
    14.         {
    15.             DiceParser dp = new DiceParser();
    16.             // try some complicated die code for testing
    17.             dp.parse("10d10r15+10d6+4-2+2d6e6+5d6:8s10+10d10s7+STR+UNDEF");
    18.             // all variables in the vartable need to be lower case!
    19.             dp.varTable["str"] = 10;
    20.             // output the result
    21.             Console.WriteLine (dp.roll());
    22.             // show the log
    23.             foreach(string line in dp.errorLog)
    24.                 Console.WriteLine(line);
    25.         }
    26.     }
    27. }
    28.  
     
  11. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    ORK Framework 2.5.7 released
    This update brings new Combatant Types, new Music Channels, new critical crafting outcome, ability/item reuse block scopes and other new features and fixes.
    See the details in the release notes.

    As usual, the update has already been sent out to customers and should be available in the Unity Asset Store shortly.


    @Duffer123
    You can add your own formula steps to ORK easily by just adding the script to your project. See the ORK source code for formula step examples.
     
  12. Duffer123

    Duffer123

    Joined:
    May 24, 2015
    Posts:
    1,215
  13. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    Have you made the player "click to move" use nav mesh yet? Or an option for it? I know the AI has that option. I haven't updated in a while since I've edited it to use a nav mesh agent.
     
  14. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    drewradley likes this.
  15. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    what's the highest version to work with Unity 4? Is it 2.5.0?
     
  16. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    The oldest supported Unity version is 4.6.1 with ORK 2.3.1 - you can find a Unity-ORK version compatibility list in the version information in the Unity Asset Store.

    Edit: Yes, meant 4.6.1 not 5.6.1 :D
     
    Last edited: Oct 19, 2015
    drewradley likes this.
  17. BackwoodsGaming

    BackwoodsGaming

    Joined:
    Jan 2, 2014
    Posts:
    2,229
    Assuming that is supposed to be 4.6.1? :p
     
  18. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    When I switch from "character controller" to "Nav mesh agent" it stops animating. Switch back and it starts. Am I missing something?
     
  19. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    @Shawn67
    Yes, thanks :)

    @drewradley
    If you still have a CharacterController attached to your game object, ORK tries to get the actual movement speed for the auto move animations from it, but the navmesh agent isn't using it for movement (i.e. the speed seems to be 0).
    Enable the Use Position Change option in the combatant's move settings to use the actual change of the combatant's position for the movement speed calculation.
     
  20. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    Thanks! That did it.
     
  21. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    What's the best way to set up a ranged attack for a gun with a raycast in the framework? Would I just add a raycast check to a battle event?

    Thanks!
     
  22. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    Also, can you check out this error:

    Code (CSharp):
    1. "Stop" can only be called on an active agent that has been placed on a NavMesh.
    2. UnityEngine.NavMeshAgent:Stop()
    3. ORKFramework.Behaviours.MousePlayerController:OnDisable()
    4.  
    Happens every time I stop "play" mode. Probably not a big deal, but I dislike seeing red errors. :)
     
  23. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    ORK Framework 2.5.8 is here

    This update brings new temporary abilities, damage zones can start game events upon damage and other new features and fixes.
    See the release notes for details.

    The update has already been sent out to customers and is available in the Unity Asset Store.
     
  24. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,459
    Really cool asset. Does it come with the source.
     
  25. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    The gameplay related source code is included, some core functionality (data serialization) and the editor code are closed source.
     
  26. Arganth

    Arganth

    Joined:
    Jul 31, 2015
    Posts:
    277
    I am quite interested in Ork (especially as its on sale now :D)

    anyone tried it together with third person controller and/or behavior designer?

    would like to use it in a third person realtime environment with ORK managing the RPG like stuff
     
  27. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    You can use pretty much every player/camera control with ORK, see this how-to for details on connecting them (i.e. allowing ORK to block the controls when needed).
    Also, using ORK together with behaviour designer shouldn't be a problem - ORK's event system can interact with 3rd party products or custom code through the event system, e.g. calling functions on components.
     
  28. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    What's the best way to set up a GUI button that opens the battle menu? I'm not seeing it. Be happy to even do it in code, if you can tell me what the command is.

    edit: managed to get a button to show up by setting up a HUD with the type "Control" but still would like to know how to do it in code.

    Thanks!
     
    Last edited: Nov 4, 2015
  29. MIK3K

    MIK3K

    Joined:
    Sep 10, 2014
    Posts:
    144
    Thank you for the sale price. This has been on my wish list for a very long time.
     
  30. LarryWP

    LarryWP

    Joined:
    Oct 31, 2014
    Posts:
    57
    I'm running Unity 5.2.2 and with the ORK demo, I get 999+ errors, NullReferenceException types. Is this not compatible with the latest Unity version?
     
  31. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    @drewradley
    Once you've got the combatant (e.g. from a game object, as explained in this how-to), you can call the battle menu like this:
    Code (CSharp):
    1. combatant.ShowBattleMenu();
    Naturally, this is also depending on when/where you call it - e.g. calling the battle menu in a turn-based battle can disrupt the battle order.

    @LarryWP
    Yes it is - can you post one of the errors you're getting?
    Also, if you've downloaded the demo from the website, keep in mind that it's a complete Unity project to be opened with Untiy, not imported into an existing project. The demo included in the Asset Store can be imported in a project.
     
    drewradley likes this.
  32. LarryWP

    LarryWP

    Joined:
    Oct 31, 2014
    Posts:
    57
    I got the demo from your website. I'm running it standalone in Unity.

    NullReferenceException: Object reference not set to an instance of an object
    ORKFramework.Behaviours.BaseInteraction.OnEnable ()
    ORKFramework.Behaviours.BaseInteraction.Update ()
     
  33. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    You'll either need to start the game from the main menu scene (0 Main Menu) or add a game starter for quick game testing to the individual scenes (see this how-to for details).
    ORK needs to be initialized, that's done through a game starter component in your scene - this is only needed once, so it's usually placed in your first scene or main menu scene.
     
  34. LarryWP

    LarryWP

    Joined:
    Oct 31, 2014
    Posts:
    57
    I'm now running it from the Main Menu scene and I get 10 errors, but it still runs OK.

    ArgumentException: GetLocalizedString can only be called from the main thread.
    Constructors and field initializers will be executed from the loading thread when loading a scene.
    Don't use this function in the constructor or field initializers, instead move initialization code to the Awake or Start function.
    TreeEditor.TreeGroupBranch..cctor ()
    Rethrow as TypeInitializationException: An exception was thrown by the type initializer for TreeEditor.TreeGroupBranch

    I have a stupid question probably, can this asset be used for 2D at all?
     
  35. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    Yeah, that's an issue with Unity's tree editor that appeared in Unity 5.1+, haven't found the source for that yet, but you can ignore it, it's just the tree assets in the project :)
    Yes, ORK is suited for 2D games, there are also plenty of them in development - check out the support forum's showcase, e.g. Dead Gear or this small game.
     
  36. Locky

    Locky

    Joined:
    May 14, 2015
    Posts:
    86
    Newbie Here.
    I am unable to get the character to spawn. I have followed the instructions in the tutorial, but it just doesn't appear. I am guessing that I missed something, but have gone over it so many times that my head is swimming. So please entertain my questions as I try to figure this out.
    On the ORK Frameworkd: Combatants>Combatants. Does the name that you type in have to match the name of the "Brown Pants" prefab?
    Are scene names allowed to have spaces in them? "Scene 1" for example?
    Is it okay to have a camera in the scene where the character is spawning or does that mess things up?

    Any suggestions on what to look for?

    thanks.
     
  37. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    No, the name of the combatant doesn't need to match the name of the prefab. Also, scene names can have spaces in them (e.g. as they do in the tutorial).
    Do you start the game from the main menu scene and does the town scene load when you start a new game from the main menu? Make sure the spawn point in the town scene matches the one used in your start event (i.e. the spawn ID must be the same number)
    Some people had issues with the character models not being displayed (i.e. only their shadows) - are you sure the player isn't spawning at all, or do you have a shadow on the ground that can be moved around (arrow keys).
     
  38. Locky

    Locky

    Joined:
    May 14, 2015
    Posts:
    86
    Yes I start from the "0 Main Menu" scene. I press <New Game> and there is a fade out and fade in to the "1 Town" scene. The arrow keys do allow me to move around and there is a shadow, but no character as you mentioned.
     
  39. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    In that case (following the tip from the 1st game tutorial) it's most likely a shader issue. Open Unity's graphics settings (Edit > Project Settings > Graphics) and increase the Always Included Shaders size by 4 (e.g. from 6 to 10) and select the 4 toon shaders that are included in the project in the new fields.
    If that doesn't help, try adding them to the Preloaded Shaders as well.
     
  40. Locky

    Locky

    Joined:
    May 14, 2015
    Posts:
    86
    I added the four shaders: Toon basic, outline, lit and lit outline to Unity's graphic settings but the character still doesn't show. Are these the correct ones to add?
    After that I messed around with the shadows and now my shadow is a huge black square! I may have to start over again.

    I tried just dragged one of the Combatants prefabs into the "1 Town" scene. Shouldn't the shader be visible at that point? I see the capsule but not the material.
     
  41. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    Try downloading the game tutorial resources again - there have been issues with the models being blender files. I've exchanged them with FBX files a few days ago (updating the tutorial resources).
     
  42. Locky

    Locky

    Joined:
    May 14, 2015
    Posts:
    86
    While I was waiting for your response that is exactly what I was doing! I re-downloaded the files, started over, and it works! Whew! Thank you for your help!
    Moving on...
     
  43. Locky

    Locky

    Joined:
    May 14, 2015
    Posts:
    86
    This may not be a ORK-specific question, but I was working in ORK when it happened and I haven't had it happen before, so please humor me! I had just got my scene working, when I literally slipped my mouse and clicked it at the same time. I have no idea what I did, but suddenly both of my scenes are went dark. I restarted Unity and same thing. I deleted and re-created the lights. When switching scenes, the scene displays as normal for half of a second and then goes dark again. I appreciate anyone who might be able to help with this.
     
  44. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    Could be something you clicked in the Lighting window of Unity :)
     
  45. gamingislove

    gamingislove

    Joined:
    Nov 7, 2010
    Posts:
    847
    ORK Framework 2.5.9 is here
    This update brings new count quest task requirements, new status requirements, individual music channel volumes and a lot of other new features, changes and fixes.
    See the release notes for details.

    As usual, the update has already been sent out to customers and will be available in the Unity Asset Store shortly.
     
  46. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    I noticed you didn't fix this:

    Any chance you can look into it for the next update? It doesn't seem to cause any problems, but like I said, I hate seeing red errors!

    Thanks!
     
  47. Catacomber

    Catacomber

    Joined:
    Sep 22, 2009
    Posts:
    682
    Hi, everyone. I'm not sure if anyone following this thread is aware of this, but we have a new Group Buy Propropal at the ORK Framework website to add a turn-based, grid-based feature to ORK--

    you can see the thread here---

    http://forum.orkframework.com/discussion/2741/the-new-grid-battle-system-thread-group-buy-proposal

    There are a lot of reasons to make this come true---as I posted---

    Here is the Tilt link again--we're getting there.

    https://www.tilt.com/tilts/grid-battle-system-for-the-ork-framework

    I like this quote from Juryiel--

    "I contributed as an excuse to reward GiL's amazing product support ."

    I think that is behind a lot of our support but also this would be a very useful addition to ORK. I was not that interested when the Tilt started--I thought it would be something I could use in the future--I donated because I love ORK--it helped me create games in a way that I really wanted to do but couldn't before I found it--- now I realize the extension here would really be useful and would make ORK a stronger engine and make my players happy.

    If I posted anything here that any Unity moderator would find unacceptable, please forgive me because I'm an innocent.
     
    nixter, drewradley and Rusted_Games like this.
  48. Rusted_Games

    Rusted_Games

    Joined:
    Aug 29, 2010
    Posts:
    135
  49. Tryz

    Tryz

    Joined:
    Apr 22, 2013
    Posts:
    3,402
    Hi @gamingislove and all!

    I don't own ORK, but I have several character based assets users want to use with ORK. Since ORK spawns the character, I'm told setting things up in the editor isn't possible.

    It also appears that the normal Awake() and Start() functions of my monobehaviours aren't called after the spawn. I'd rather not put code in the Update() functions that runs every frame and for everyone (even if they don't use ORK) just to initialize the characters.

    What's the best way for me to support ORK and do initialization logic without adding it in the Update() function?

    Thanks!
     
  50. drewradley

    drewradley

    Joined:
    Sep 22, 2010
    Posts:
    3,063
    Try using OnEnable. A lot of people don't seem to be aware of this one. I use it for things like that and it works fine.