Search Unity

EZ Replay Manager

Discussion in 'Assets and Asset Store' started by softrare, Jun 12, 2011.

  1. greggtwep16

    greggtwep16

    Joined:
    Aug 17, 2012
    Posts:
    1,546
    Hi first of all want to say like your product. Everything I've used so far seems easy to understand and setup. One issue/question I've had so far though is an interactive cloth I have in my scene doesn't record even if I have set it to. Error and stacktrace thrown below.

    Code (csharp):
    1.  
    2. Can't remove InteractiveCloth because ClothRenderer depends on it
    3.  
    4. UnityEngine.Object:DestroyImmediate(Object)
    5. Object2PropertiesMapping:prepareObjectForReplay() (at Assets/EZReplayManager/extension/scripts/Object2PropertiesMapping.cs:195)
    6. EZReplayManager:switchModeTo(Int32) (at Assets/EZReplayManager/extension/scripts/EZReplayManager.cs:341)
    7. EZReplayManager:play(Int32, Boolean, Boolean, Boolean) (at Assets/EZReplayManager/extension/scripts/EZReplayManager.cs:473)
    8. EZReplayManager:OnGUI() (at Assets/EZReplayManager/extension/scripts/EZReplayManager.cs:721)
    9.  
    Does this not support interactive cloths?
     
  2. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! I am very glad to hear that you like the plugin! Thanks!

    Well, generally everything which the plugin is not working together with out of the box, can be made functional, mostly by just adding the properties, the 3rd party system in uses in the class "Saved State", the documentation shows how.

    But this error simply occurs, because ClothRenderer has a RequireComponent-reference to InteractiveCloth. In replay mode all scripts are being deleted from the object clones to not let i.e. physics and other custom scripts interfere with the replay. Either remove the RequireComponent-reference, or put the InteractiveCloth script in the exceptions (so in the list of scripts which should NOT be removed on replay). Again, the documention shows how to do that.

    If other questions or problems occur, please don't hesitate to ask.
     
  3. PepperGameplay

    PepperGameplay

    Joined:
    Oct 21, 2011
    Posts:
    36
    This does not work.
    gives this error: The name `switchModeTo' does not exist in the current context.

    This is my code:

    void Update()
    {
    // x to exit the playback mode
    if(Input.GetKeyDown("x"))
    {
    switchModeTo(MODE_LIVE);
    }
    }

    THANKS!!!!!
     
    Last edited: Sep 27, 2013
  4. PepperGameplay

    PepperGameplay

    Joined:
    Oct 21, 2011
    Posts:
    36
    I do not understand how to change the location where you save the file ".ezr". I read Chapter 4.2 of the PDF and would like to know how it work:

    "absolute filename".
    EZReplayManager.saveToFile (including filepath).

    This is my code:

    public string NameFile = "NameScene";

    void Start()
    {
    NameFile = NameFile + ".ezr";
    }

    void Update()
    {
    if(Input.GetKey(KeyCode.LeftControl) Input.GetKeyDown (KeyCode.Space))
    {
    EZReplayManager.saveToFile(NameFile);
    }
    }

    THANKS!!!!!
     
    Last edited: Sep 27, 2013
  5. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks for your questions!

    That's right, you cannot call that function from outside the class EZReplayManager. If you still want to do that you have to change the private (or protected) keyword to public (in front of void switchModeTo(int newMode) { , search for that string in EZReplayManager.cs )


    This should be fine. What is the problem with that code?

    If you want the file to be saved to a different directory, you have to give that full directory in the variable NameFile. If you give an absolute path here (like i.e. C:\somelocation\subfolder\file.ezr) this path will be taken, if you do not provide an absolute path, the file is saved in the working dir of the game executable. Was this the question? I didn't quite understand.
     
    Last edited: Sep 28, 2013
  6. PepperGameplay

    PepperGameplay

    Joined:
    Oct 21, 2011
    Posts:
    36
    That's right, you cannot call that function from outside the class EZReplayManager. If you still want to do that you have to change the private (or protected) keyword to public (in front of void switchModeTo(int newMode) { , search for that string in EZReplayManager.cs )

    I change the following line:
    private static void switchModeTo(int newMode){
    FOR
    public static void switchModeTo(int newMode){
    Still no access

    I have access when you get like:
    public void switchModeTo(int newMode){

    Thus gives error in other parts of the script (EZReplayManager.cs). It is not possible that I will not be able to do something so simple. I told my boss to buy your app, and now he's trying to eat my liver. I'm trying to access it from another script. What would be the best way to do this? PLEASE HELP!!!!

    Thanks for answering.
     
    Last edited: Sep 30, 2013
  7. PepperGameplay

    PepperGameplay

    Joined:
    Oct 21, 2011
    Posts:
    36
    Thanks for answering the question about how to save the file.
    I tested it and it worked. I would apply that to save the file.

    "Application.dataPath"

    Is it possible?
    THANKS!!!!!!
     
  8. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    You should post here the error message which occurs.

    You don't need to do that, if you only define a relative filepath (Like 'test.ezr', which is also relative) it will automatically be saved in the Application path.
     
  9. JohnnyK

    JohnnyK

    Joined:
    Aug 20, 2013
    Posts:
    5
    Any progress with the issue?
     
  10. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Sorry for the delay, I forgot to post an answer.

    I did a little research, it appears to be a Unity problem, not a problem with the plugin itsself, but one that of course puts me in a tough spot. Could you please test out any of the solutions presented in these threads:

    http://answers.unity3d.com/questions/286551/serialization-reflection-exception-on-iphone.html
    http://forum.unity3d.com/threads/140606-iOS-Basic-BinaryFormatter
    http://forum.unity3d.com/threads/25890-Issue-saving-serializable-data-to-iPhone
    http://answers.unity3d.com/questions/250803/executionengineexception-attempting-to-jit-compile.html (changing of the .NET API Compatibility Level)

    Unfortunatly I have no iOS device at my disposal at the moment. Could you try these out and report to me what the results were? Thank you very much.
     
  11. usagi

    usagi

    Joined:
    Nov 21, 2011
    Posts:
    7
    Hi softrare, I've tryied your demo and it works really fine.

    I have a question: during the replay, is it possible to interact with the game objects in the scene?
    For instance, during the replay I'd like to click and highlight some brics, while the replay is going on.
    This would be great in some simulations (for instance education or training simulations) where I have to check what a user has done and, in case of errors, whatch with him/her the replay and highlight the correct behaviour he/she should have adopted in that situation.

    Do you think that this is a feasible feature or not?

    Thank you in advance
     
  12. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks for your question!

    It's definitly possible, because also the replay is native Unity code, so you'd have to write a script (which enables the graphical features you described, make sure these features are only active while replaying) and add the script as an exception which is not being removed on the replay clones. For details, please refer to the documentation. So yes, its possible :)
     
  13. usagi

    usagi

    Joined:
    Nov 21, 2011
    Posts:
    7
    Great!

    Thank you!
     
  14. patxi

    patxi

    Joined:
    Jan 18, 2013
    Posts:
    3
    Hi softrare,

    I am trying the demo version of your plugin and I have successfully recorded and replayed but when I say

    EZReplayManager.play(0, true, false, true);

    inmediately after that the game shows a grey background for a small period (less than a second) before replaying my recording. Is that happening because of the demo version? Could I set not to have that "delay"? This is not happening using de GUI controls.

    I have observed that the duplicated camera under EZReplayM_sParent is disabled during this time.

    Thanks for your help!

    PD: forget it, it was because my camera was disabled when I was starting to record… Anyway, is it possible to remove the GUI that is showing when replay is running? Is that showing only in demo version? I have tried this:
    EZReplayManager.get_singleton().useReplayGUI = false;

    but it doesn´t remove it.
     
    Last edited: Nov 21, 2013
  15. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks for your question.

    No that is not because of the limited version but my guess is that this happens because you are recording very large chunks of gameplay and/or the gameobjects you are recording are quite big/complex. Is any of that the case? Then the effect you are seeing is typical lag because of resource limitations. This is as said only a guess. What kind of scene are you running, how many objects and for how long?

     
  16. patxi

    patxi

    Joined:
    Jan 18, 2013
    Posts:
    3
    Forget it, it was because I was starting to record before the camera was enabled by code…

    Anyway, I am facing another problem. I have the instance of the EZReplayManager prefab on my scene, with a Recording Interval of 0. When I replay with a speed of 0, the replay is running faster than the real game. This is not appreciable in the Editor (becase my computer does not look like to be fast enough), but when I have been testing on a Nexus 5 then it happens.

    Thanks!
     
  17. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi!

    Generally it is not recommended to have an update interval of 0, the replay will almost certainly get out of time sync with the original replay, because there is not a single delay while replay between one frame and the other. Its also very heavy on resources for recording and replaying. If you want seemless replays choose a very small value like 0.001 or less, but as said, I would not recommend 0 ;)

     
  18. patxi

    patxi

    Joined:
    Jan 18, 2013
    Posts:
    3
    Hi again!,

    I have tried with a recording interval like 0.017 (to achieve a ~60 FPS recordings speed) and same problem, the replay on the device is running faster than gameplay :(

     
  19. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Are you sure you didn't in some way influence the replay by setting the update interval manually before replay starts? Furthermore, are you sure you did a fresh recording after setting the update interval to 0.017? If yes, this would be quite strange, because generally android devices tend to have slower processors than desktop computers (which very sadly also effects how fast time is ticking) so I would always expect the replay to be (if anything) slower on Android than on the desktop computer (although I went through quite some effort to eliminate this difference on code level).

     
  20. Leo-Bounce

    Leo-Bounce

    Joined:
    Mar 2, 2011
    Posts:
    12
    Is it possible to smooth recorded camera movement?
     
  21. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks for your message. Well you could decrease the update interval so there are more frames which generally makes movement smoother. Note that all other objects are then recorded with higher framerate as well. Would that solve it for you?
     
  22. Leo-Bounce

    Leo-Bounce

    Joined:
    Mar 2, 2011
    Posts:
    12
    Thank you for a quick answer!
    It looks like I need some kind of smoothing the values itself. For example I have 3 frames with positions 1.0.1 - 1.10.1 - 1.5.1. As a result of smoothing I need something like 1.0.1 - 1.8.1 - 1.5.1. It is the same as smoothing of bezier curves. Maybe there is some third party that I can use for this having all the data from replays?
     
  23. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Well, as there is no third party tool known to me which can accomplish that, I guess you would have to rely on own code, or you could possibly hire me to do this, this could be discussed by PM or mail. If you are yourself comfortable programming, the data is not saved in any way encrypted, you have direct access to the transform values of each frame, so you can change them according to your prefered formular.
     
  24. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Very Nice Asset,

    Kinda kicking myself for not finding your package earlier. Would very much to have your package for the holidays but I've been spending so much and now budget is quite limited.

    Would you consider having a 24hr Sale? Your package is super cool, having a sale would probably shotgun your asset up the "Top Grossing" list on the asset store because more people would find out about it. I don't know if you've participated in a unity sale before but from what I've seen, so many great packages do not get the attention they deserve until they are participate in a the unity promotion. People usually go nuts over the packages once its on sale.

    Very much appreciate it.
     
  25. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Question:

    On IOS, I noticed that it cannot save to a file. How is the data being saved on this platform? sent to a server via http?

    Also on Win8 mobile. Is this the same as IOS ?
     
    Last edited: Dec 21, 2013
  26. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thank you so very much for the compliments! I just spent quite some time until a few days ago to update the package and make it 100% compatible with Unity 4, also to make it support a bigger variety of complex gameobjects. Very very glad you like the outcome (if you tried the free limited version recently).

    Last year around this time I had a christmas sale going on (using my own "Sale" sign), but while in the official Asset Store sales, you are indeed right, that the sales go up by several hundred percent, my "own" sale last year was not very successful (it just doesn't get that kind of prominet exposure), and so I was pretty sceptical this year, if I should again put this up (also I am not sure if Asset Store guidelines still allow for publishers to put up their own "Sale" sign, which I had made a third party design in a christmassy way -.- ). If there was at least a few more potential customers to ask to buy exactly now at a reduced price, I could reconsider.

    With regards to saving to file on iOS, that is correct, it just doesn't work at the moment, ADT throws errors. The saving and loading is being done by BufferedReader so it is serialized and deserialized in binary form. I am pretty sure it can be made to work also on iOS, but you would have to rely on own code or 3rd party tools. I.e. the JSON .NET component SEEMS to me (haven't tried it yet) to be able to cope with all the containers I use, and thus should be able to transform everything to JSON as a string (with which you could then do whatever you want). And yes, it seems to be the same for win8 mobile, just not being able to serialize for some reason. Maybe I will find a solution to this in the future, but it would have to be implemented completely by myself, as I cannot rely in plugins from the Asset Store, to use in my own plugin.
     
    Last edited: Dec 21, 2013
  27. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    "If there was at least a few more potential customers to ask to buy exactly now at a reduced price, I could reconsider."

    This might not be an accurate indicator of the success of the promotion campaign. Unity store has a very good Business Director that really knows how to promote your asset. Just contact them and let them know you want to be promoted and let them do their thing. Some of really Great packages just sit there for the longest time without the support that they deserve. Once the store promotes them, then whamo ! big Success.

    "The saving and loading is being done by BufferedReader so it is serialized and deserialized in binary form".
    I have EasySave2, which can save binary data to the server or as a file. So in theory, I could take the BufferedReader's binary output and save it EasySave2 which then can be fed back to EZReplay. Would I be able to test EasySave2 integration with the free EzReplay version?
     
  28. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    It's not that easy anymore, you have to apply for being in the sales using a special online form. Also it could be quite a while until EZReplayManager will be on 24h sale again, as it just was on sale late this year. But of course I will apply again, as it were a very successful 24h ;)

    Again, and this is of course nothing personal, but from sales perspective it just doesn't make a lot of sense to create a 24h sale where it's being sold only to 1 customer. I could be wrong of course, it could be more, but I am being realistic. My package exists in the Asset Store since 2011 and you i.e. just found it now. That fits with my personal gut feeling that my package sales could just be A LOT higher, if the Asset Store guys would put it in a more prominent position once in a while. I do(n't) really want to know what the guys earn who are on the front page of the Asset Store constantly.

    Unfortunatly I decided to disable saving and loading with the free limited version, but if EasySave2 utilizes BufferedReader, too, I am pretty confident that you could make it work just like that (although the question arises why my package does not work with iOS, but for some reason EasySave2 does? Seems quite unlogical).
     
    Last edited: Dec 21, 2013
  29. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    Like you mentioned, your package definitely need more front page exposure because it's not getting enough attention. My suggestion was to participate in a sale. Some packages are on the front page more often than once a year. Definitely something going on with the asset store. Probably having a chat with them to work something out. I do hope that they give your package more exposure and better promotion.

    "EasySave2 utilizes BufferedReader" I'm not too sure if it uses BufferedReader because it's closed source. If you could find out how they do their magic then EZ Replay can also work on IOS.
     
  30. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Thank you very much for your support, I really appreciate it!!

    Can you send me a file saved by EasySave2 ? Maybe I can investigate this way.
     
  31. EmeralLotus

    EmeralLotus

    Joined:
    Aug 10, 2012
    Posts:
    1,462
    The output file is just a bunch of binary.. I think your best bet is to contact EasySave2 author and have a chat with him. He's quite a cool person, tell him about your project and he will probably give some tips.
     
  32. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Thanks! I'm on it, contacted the owner.
     
  33. gnchishti

    gnchishti

    Joined:
    Dec 27, 2013
    Posts:
    10
    @softrare
    can we convert your replay able files to mp4 or any video format?
     
  34. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! No, unfortunatly that is not possible with the native plugin code. But there are screen recorder plugins in the Asset Store. I can't think of a reason, why you couldn't use those 2 plugins together to achieve this. With EZ Replay Manager what is very handy is, that you can change the camera view of the replay, so to view it from a position you haven't recorded the game in, that is not possible with screen recorder plugins. With screen recorder plugins you can indeed convert to video files, that is at the moment not possible with EZReplayManager. Hope this helps!
     
  35. gnchishti

    gnchishti

    Joined:
    Dec 27, 2013
    Posts:
    10
    Could you give me link of these two plugins?
    I need to record my screen in android and web export.

    thanks for reply
     
  36. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi, use EZReplayManager (link in my signature) to record movement and the like, i.e. to be able to change camera view when replaying, and then use i.e. this or this to convert your replay to a video file (I have not tested those last 2 plugins, though). Hope it helps!
     
  37. greggtwep16

    greggtwep16

    Joined:
    Aug 17, 2012
    Posts:
    1,546
    Hi softrare,

    I recently updated to the latest version of your product and in the latest version I can no longer keep alive a rigidbody component and not have jitter in my recording on that object (basketball). I have since reverted back to the previous version and I can keep it alive without jitter again but would really like to stay latest since you occasionally mention performance increases in your notes.

    Let me explain my usecase. I am creating a basketball game and would naturally like to use your recording package. My basketball net however is an interactive cloth and I cannot reliably record the deformations to the cloth directly because I found no way to get this data out from unity and have it perform. However, when I was playing around in your previous version I found that it wasn't necessary to do this anyways because I could just keep the rigidbody and spherecollider on the cloned ball and in the replay when the ball went through the net again it would again deform the net in the same manner (or at least close enough that I couldn't tell any difference with the naked eye I realize it wouldn't be 100% guaranteed). I found no other way to get the replay to look ok for my usecase.

    I realize there were quite a bit of changes in your last 2 updates but does anything come to mind on what would have changed with regards to keeping rigidbodies alive on the clone?

    On a side note, I haven't read through this thread in awhile but the mention of the compile errors with saving/loading portions of your product on WP8 and windows store is correct. Those platforms do NOT use mono runtime and they use a stripped down version of .net so many of the serialization classes EZReplay used aren't available and hence won't compile. Just confirming a comment I saw earlier. It's obviously not trivial to swap out methods of serialization (to either use JSON or rewrite your own implementation of those .net classes) and those mobile platforms have a smaller userbase but just thought I'd give you an FYI and confirm the previous comment.
     
    Last edited: Jan 6, 2014
  38. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks a lot for your message!

    Very interesting to hear your case. You write "in your last 2 updates". Does that mean you use version 1.4x of the plugin?

    In general, it should be very possible to keep certain components on the clones, also in the newer versions. But exactly the case of rigidbodies as components being kept, I must admit I didn't test that specifically (at least not with the latest versions). I just thought that the jittering is being caused by the keyframe method which was introduced in version 1.5x, but when I think it through, a basketball is always in movement, so there is no chance that the physics kick in only because of the new keyframe method. So this behaviour does likely not come from that. So at the moment I don't know really. Could you send me maybe a video of this jittering of the basketball?

    Thanks for your comments on the serialization issue. I am sure this will be fixed over time to also support WP8/iPhone and possible other platforms that don't support .net serialization, but at the moment this issue remains open.
     
  39. greggtwep16

    greggtwep16

    Joined:
    Aug 17, 2012
    Posts:
    1,546
    Hi Softrare,

    I have uploaded a video as short as I could get it of before and after. As far as what the previous version was I'm not exactly sure since I usually strip out the unneccesary files (like the readme) once I put into my project to keep the size down. It was downloaded in roughly september timeline and from the release notes I think it's 1.5.2. What you are looking at is just the replay in my game (to illustrate it clearly I have the replay camera fixed and fairly close to the ball/hoop). When upgrading its the exact same codebase minus the changes needed to the upgrade (meaning the .get syntax on the singleton and your new version only). Everything else is exactly the same. The problem dissapears when I don't keep alive the Rigidbody but that will mean the net isn't kept alive since its a Unity Interactive cloth. Any ideas would be appreciated.

    Previous EZ Replay version (1.5.2?)



    Current EZ Replay version (1.5.4)

     
  40. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Thanks a lot for the uploads!

    Is the basket itself also a rigidbody? As a basketball player myself, I don't find the ball behaviour on the currentVersion vid particulary strange. In the live part, did the ball go through the net in the same way in both versions (so right in the net, and not on the wooden board first) ? Because in that case the ball does not only jitter on hitting the basket/net but it has a totally different fly route. What are your thoughts on that?

    When I enable rigidbodies on replay clones I get a terrible result, I am really wondering how is it possible that that didn't effect ball movement in your previousVersion setup. EDIT: You probably disabled gravity on the rigidbodies, is that correct? Did you disable that on the live objects, too, or only on the clones?

    Another thing: The performance gain from version 1.52 (which was the latest version for a long time, at least a year) to 1.54 is really not that significant. Had you used version 1.4x, then yes, that would make a big difference, but in in your case, you shouldn't feel obligated to upgrade for performance reasons. Of course it has it's own benefits to stay on the latest version..

    EDIT:
    Normally I would definitely think that there really shouldn't be a difference between version 1.52 and 1.54 in how the replay is handled, because not much (if any) changed on that fundamental functionality. It was really more of a maintainance update with a few new features included. But I am starting to find this issue really interesting and would love to know whats behind it. I think we will know soon.
     
    Last edited: Jan 8, 2014
  41. greggtwep16

    greggtwep16

    Joined:
    Aug 17, 2012
    Posts:
    1,546
    (facepalm) Sorry this was a mistake on my end! It had been awhile and as you suspected I forgot I edited your prepareObjectForReplay() function with the following lines. Putting those back in your new version and replay is back to normal.

    Code (csharp):
    1.  
    2.             if (gameObjectClone.GetComponent<Rigidbody>()!= null)
    3.                 gameObjectClone.GetComponent<Rigidbody>().useGravity = false;
    4.  
    Sorry about the mistake I knew I had edited your package to take out all the serialization for saving/loading from file (because I do target windows phone and windows store and I am only using this for in game replay and it won't compile otherwise) but forgot about disabling gravity on the ball's rigidbody for the clone. Thanks for the help!

    By the way, I really enjoy your asset before encountering it the thought of recording the game data for replays instead of the screen would not have occurred to me.
     
  42. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Awesome! Don't worry, such things can be forgotten. I am glad everything works again! Nice scene BTW :) Are you planning on releasing soon?

    Thanks a lot, I am glad you enjoy it!
     
  43. greggtwep16

    greggtwep16

    Joined:
    Aug 17, 2012
    Posts:
    1,546
    Thanks! No still a lot to go (I'm doing this solo) I'd be happy if I can release in the second quarter of this year on all the mobile platforms (ios, android, WP8, and windows store). That's probably being optimistic though as I only have gyro controls, touch interface, physics, and models in a mostly working state but I still have to tackle animations, networking and the normal bug fixing/polishing to do. Either way, I'm definitely having fun making the project though.

    After getting the update consumed I did notice a bug though. Your updated syntax on line 558 of EZManagerReplay.cs has the following.

    Code (csharp):
    1.  
    2.             exitOnFinished = exitOnFinished;
    3.  
    Those are exactly the same (the classes variable and the one being passed in on the method) so it doesn't actually set the value to the class. It basically means the exitOnFinished will always be false when calling the 4 argument version of play which obviously won't auto switch back to live when finished playing. Flipping it to below will fix the bug.

    Code (csharp):
    1.  
    2. this.exitOnFinished = exitOnFinished;
    3.  
     
  44. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Ouch, thanks a lot for the report. And kudos for the project, hope you can make it in a timely manner!
     
    Last edited: Jan 8, 2014
  45. kilik128

    kilik128

    Joined:
    Jul 15, 2013
    Posts:
    909
    is working with sound volume and pitch ?
     
  46. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi, thanks for your question. It is not natively supporting sound recording/replaying yet.
     
  47. exit_the_matrix

    exit_the_matrix

    Joined:
    Jan 12, 2014
    Posts:
    4
    Hi!

    I consider to buy the full version but still testing around with the free limited version and there is following problem:
    I do not see some of the recorded gameobjects. For example i have a soccerball which is a normal 3d-mesh and everything is ok with this gamobject. next i have 8 players which are nested sprites (and also one quad mesh in it) with scripts on it. After recording this and replaying it -> i get null reference errors and i dont see them at all. I tried pre-cacheing and also the no-script method (dragging gamobjects on record list). any ideas?
    the pre-cached version drops no errors but also fails in displaying right.
     
  48. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks for your question.

    Please ake sure the topmost gameobject (in scene hierarchy) is the one being recorded. If the gameobject being recorded has a parent incorrect an incorrect location will be recorded (the gameobjects don't disappear fully then but they could be well out of the screen so that it seems they are no longer there anymore). Please report back to me if that helped you.
     
  49. tlk

    tlk

    Joined:
    Jul 26, 2013
    Posts:
    4
    Is there a way to delay the start of the replay and hold at the end before exiting programmatically? I am currently using the demo but will be buying the full version.
    I have to call get.start() in order to setup the replay objects but i don't want the replay to actually begin playing for a certain amount of time. How can I do this?
    I'd also like to hold for a bit when the replay is finished. I pass in false for exitOnFinish which works fine although how do I actually programmatically exit the replay? It seems like these settings are meant to be used with the GUI which I wont be using.
     
  50. softrare

    softrare

    Joined:
    Jun 12, 2011
    Posts:
    444
    Hi! Thanks for your question!

    You can use the following method:

    public static void play(int speed, bool playImmediately, bool
    backwards, bool exitOnFinished) {
    ...
    }


    So to get the plugin into replay mode pass on a false for the parameter playImmediately, and to not automatically exit replay mode, pass on a false for exitOnFinished. To exit replay mode programmatically on your own, call switchModeTo(ViewMode.LIVE);.

    Hope this helps! Otherwise please report back to me ;)