Skip to content

Latest commit

 

History

History
584 lines (362 loc) · 15 KB

CHANGE.md

File metadata and controls

584 lines (362 loc) · 15 KB

All Versions

v0.6.1 (Janurary 4 2021)

  • ILRuntime update to v1.6.6
  • ILRuntime Adapter Generator Enhance
  • ILRuntime Automatically Register Adapters
  • More JEngine Demos
  • Better Logs
  • JBehaviour & JEvent & etc supports stacktrace on specefic line
  • UIUtility with a cache dictionary to load UI components faster
  • Support all MonoBehaviour events from now on
  • Auto Generate MonoBehaviour Events for Adapters which inherits MonoBehaviour
  • ClassBind supports binding different adapters
  • Support Add & Get Component with different adapters which inherits MonoBehaviour
  • Generate Editor for Adapters
  • Support Invoke, InvokeRepeating, IsInvoking, CancelInvoke in hot update scripts
  • JEvent support Subscribe methods from base class
  • Bug fix on saving data on prefabs
  • JSaver supports get Default Value
  • Better Editor Panel
  • Support XAsset Pro (Main feature is patching, needs to subscribe)

v0.6.0 (December 6 2020)

  • UI Framework
  • Enhance JSaver
  • JAction supports DelayFrames
  • Fixed a heaps of bugs
  • JSON Checker Tool
  • JEvent, which is similar to Google core libraries for Java, eventbus
    • Subscribe Class
    • Subscribe Method
    • Post data to all subscribed events
    • Can be running on Main Thread or sub Thread
  • Enhance ClassBind, much more powerful
    • Auto Bind when needed, better performence
    • Controls by ClassBindMgr, more advanced while setting fields
    • Support Automatically get all fields from a Hot Update Class
    • Support Automattically find the FieldType for a field
  • JExtensions
    • Allows get hot update class from GameObject via Classbind
    • Add JBehaviour to GameObject
    • Add JUI to GameObject
    • Get JBehaviour from GameObject
    • Get JUI from GameObject
  • JWebSocket
    • Connect to websocket servers
    • Send message to websocket servers
    • Listen message from websocket servers
    • Listen and Send in Sub Thread
  • JEngine Setting Panel
    • Automatically jump to Init scene first while running
    • Hot Update Scenes Shortcuts
    • ClassBind Tools
    • Error Rescue Tools
  • More CLR Redirection Methods
    • Support MonoBehaviour.SendMessage from Hot Update Class
    • Support MonoBehaviour.Instantiate GameObject with Hot Update Classes & Single Hot Update Class
  • JBehaviour enhance
    • Perform better after built than in Editor
    • Support Deltatime, loop counts, etc.
    • Powerful Inspector

v0.5.8 (October 29 2020)

  • Bug fix when copying streaming asset
  • C# type to Proto file converter
  • Rearrange menuitems
  • Enhance ClassBind
  • More advanced JBehaviour Editor
  • JBehaviour supports create by call new()
  • BindableProperty supports binding on multiple events

v0.5.7 (October 25 2020)

  • JBehaviour got rid of MonoBehaviour, a significant increasement of performance has been developed
  • JUI got rid of MonoBehaviour
  • Register Helper for CLR Method Redirection
  • ClassBind enhancement

v0.5.6 (October 19 2020)

  • Less GC to inherit MonoBehaviour in Hot Update Solution
  • Value Type Binder Register Helper allows register value type binders, which typically decreases GC on Value Types (EG. Vector3/2)
  • ClassBind improvements which increases the performence
  • ClassBind supports properties which allows set properties just like setting fields
  • Localization improvements which increases the performence
  • Localization Text improvements which spends less memory and GC
  • Bug fix on ILRuntime Cross Bind Adapter Generator
  • JBehaviour improvements which decreases GC and runs better
  • Bug fix on JBehaviour when calls pause() and resume()
  • JPrefab which is a new solution for managing hot update prefabs

v0.5.5 (October 11 2020)

  • ClassBind allows auto attach any class to a GameObject
  • ClassBind allows use consturcor as a initial of fields of a class
  • ClassBind allows call Active() method whether the bound class inherited MonoBehaviour or JBehaviour or not
  • Editor for Hot Update Scripts to GameObject supports present more stuffs
  • Demo for using AntiCheat Struct & Bindable Property improves

v0.5.4 (October 10 2020)

  • Anti-Cheat Structs allows detect hackers who hacks your game
  • ClassBind improvements more friendly to update from old versions to latests

v0.5.3 (October 6 2020) (Support by XAsset's Author)

  • Supports copy DLC files to Streaming Assets, which can pass App Store review easier
  • Supports move local Streaming Asstes hot update resouces to persistence path which user don't need to download any old things from server

v0.5.2 (October 1 2020)

  • Anti-Cheat Structs which prevents cheating tools change data stores in memory
    • Drag 'n drop on Class Bind
    • LitJSON Serialize and Desirialize Float

v0.5.1 (Sepetember 26 2020)

  • Localization supports multiple languages in your game
  • Smarter autobind, easier to set value of a Unity Component
  • More event functions for MonoBehaviour in HotUpdate

v0.5.0 (Sepetember 19 2020)

  • Rebuilt demos
  • Rewrote StringifyHelper
  • Updated ILRuntime
  • Rewrote JSaver
  • Enhanced Auto Class Bind
  • Enhanced Cleaning Hot Update Solution in Unity Editor
  • Enhanced LitJson to serialize and deserialize BindableProperty (Decreases 80% of size when converting BindableProperty to JSON)
  • Adapt protobuf-net
  • Proto2CS converter
  • Rearranged hot update solution
  • JResource now supports load scene async and get progress when loading scene
  • Combined JBehaviour & JUI to JEngine.Core
  • Enhanced JBehaviour
  • Enhanced BindableProperty ToString method
  • Enhanced MonoBehaviour Adapter Inspector Window

v0.4.10 (Sepetember 12 2020)

  • StringifyHelper is a helper which serialize and deserialize data
    • Support JSON & Protobuf & BinaryFormatter
  • JSaver now uses StringifyHelper to do JSON converts
  • Enhance clean.cs

v0.4.9 (September 10 2020)

  • Able to autobind hot update resource
  • Auto bind runs in Awake which becomes faster
  • ILRuntime Adapter Generator supports custom assembly

v0.4.8 (September 9 2020)

  • Right Click to copy GameObject Path from hierarchy
  • Bug fix on release dll
  • Bug fix on Build Setting scenes

v0.4.7 (September 8 2020)

  • Autobind supports bind to GameObject itself
  • Support AES encrypt string
  • JSaver, support Data persistence

v0.4.6 (September 7 2020)

  • MonoBehaviour Adapter Inspector window show error fields
  • Autobind editor window
  • Autobind support bool value
  • Autobind support private and static and instance fields

v0.4.5 (September 6 2020)

  • ILRuntime Adpater Generater
  • Enhanced Autobind
  • Less GC on Autobind
  • Auto Destory when Finish Autobind
  • No need to call any method to require autobind

v0.4.4 (September 5, 2020)

  • Autobind support auto set fields
  • Enhance Autobind

v0.4.3 (September 4, 2020)

  • Custom scenes bug fixed
  • Pdb symbol bug fixed
  • Enhanced JBehaviour
  • Autobind classes from hotupdate dll to prefabs
  • Support more Unity versions

v0.4.2 (September 3, 2020)

  • Advanced hotupdate dependecies cleaner
  • Enhanced development mode
  • Allows custom scenes addition

v0.4.1 (August 22, 2020)

  • JAction now supports execute in main thread

    As we know Task.Run in Unity will run in a new thread, which is not able to call most Unity APIs, now JAction found a solution of using Loom.

  • Enhance Developement Mode performance

v0.4.0 (August 16, 2020)

  • JEngine Framework has been devided into following parts:

    • JEngine

      You can include this into your hot-update scripts or your Unity main project

      • Core
      • UI
      • LifeCycle
    • UnityPlugins

      You can choose to import these into unity

      • JEngine.Unity (compulsory to a new project)
      • JEngine.JSON (optional)
      • JEngine.Redis (optional)
  • Small bugs has been fixed

  • ILRuntime back to Unity Solution

v0.3.6.5 (August 9, 2020)

  • JResource supports match pattern, which prevents different resources witch same name can't be loaded

    public enum MatchMode
    {
      AutoMatch = 1,
      Animation = 2,
      Material = 3,
      Prefab = 4,
      Scene = 5,
      ScriptableObject = 6,
      TextAsset = 7,
      UI = 8,
      Other = 9
    }

v0.3.6.4 (August 8, 2020)

  • Enhanced JAciton

  • Enhanced JBehaviour

  • JResource is now coming

    • JResource is based on XAsset and it allows to load asset from hot-update resources via sync/async methods
    var txt = JResource.LoadRes<TextAsset>("Text.txt");
    Log.Print("Get Resource with Sync method: " + txt.text);

v0.3.6.3 (August 6, 2020)

  • JAction supports Cancelation Callback

    //Cancel a JAction
    JAction j8 = new JAction();
    j8.RepeatWhen(() => Log.Print("[j8] I am repeating!!!"), () => true, 1, timeout)
      .ExecuteAsyncParallel();
    //You can either add a cancel callback
    j8.OnCancel(() => Log.Print("[j8] has been cancelled!"));
  • JAction supports Reset

    //Reset a JAction
    j8.Reset();
  • Fixed bug on JAction.ExecuteAsyncParallel

v0.3.6.2 (August 5, 2020)

  • JAction supports Async & Async Parallel

    //Execute Async
    JAction j6 = new JAction();
    _ = j6.Do(() => Log.Print("[j6] This is an async JAction"))
      .ExecuteAsync();
    
    //Execute Async Parallel
    JAction j7 = new JAction();
    j7.Do(()=>Log.Print("[j7] This is an async JAction but runs parallel, callback will be called after it has done"))
      .ExecuteAsyncParallel(()=>Log.Print("[j7] Done"));
  • JAction supports Cancelation

    //Cancel a JAction
    JAction j8 = new JAction();	
    _ = j8.RepeatWhen(() => Log.Print("[j8] I am repeating!!!"), () => true, repeatDuration, timeout)
      .ExecuteAsync();
    JAction j9 = new JAction();
    j9.Delay(5)
      .Do(() =>
          {
            j8.Cancel();
            Log.Print("[j9] cancelled j8");
          })
      .Execute();

v0.3.6.1 (August 3, 2020)

  • JAction supports more features

    • Repeat with frequency

      int repeatCounts = 3;
      float repeatDuration = 0.5f;
      JAction j = new JAction();
      j.Repeat(() =>
             {
               Log.Print("I have repeated");
             }, repeatCounts, repeatDuration)
        .Excute();
    • Repeat with condition

      int num = 10;
      float repeatDuration = 0.5f;
      float timeout = 10f;
      JAction j = new JAction();
      j.RepeatWhen(() =>
                   {
                     Log.Print($"num is more than 0, num--");
                     num--;
                   },
                   () => num > 0, repeatDuration, timeout)
        .Excute();
    • Repeat until

      int num = 10;
      float repeatDuration = 0.5f;
      float timeout = 10f;
      JAction j = new JAction();
      j.RepeatUntil(() =>
                   {
                     Log.Print($"num is more than 0, num--");
                     num--;
                   },
                   () => num <= 0, repeatDuration, timeout)
        .Excute();
    • Wait Until

      JAction j = new JAction();
      j.Until(()=> something is done)
        .Do(something)
        .Excute();

v0.3.6 (August 2, 2020)

  • JAction which supports less code but do more

    JAction j = new JAction();
    j.Do(() =>
          {
            Log.Print("Hello from JAction!");
          })
      .Delay(3.0f)
      .Do(() =>
          {
            Log.Print("Bye from JAction");
          })
      .Excute();
  • Hidden dictionary to save Hot Update DLL which strongly increased unity excute speed for dll (Unity will no longer load Hot Update DLL from editor)

v0.3.5 (July 29, 2020)

  • Rewrite JBehaviour's source code which enhances the performence
  • JObjectPool is a new solution for Object Pool
  • Improve JBehaviour which it now supports method-chaning in some part
  • Enhance JUI

v0.3.4 (July 25, 2020)

  • JBehaviour Example
  • Rewrite JBehaviour Structure
  • Improve JUI
  • Fix that JBehaviour can't be called

v0.3.3 (July 24, 2020)

  • Hot Update DLL Encryption based on AES encryption, with a 16 bits key, it is harder to let others hack your dll
  • More ILRuntime Registerations support, reduce the requirements of registerations when using ILRuntime
  • Update XAsset and ILRuntime to the latest version

v0.3.2 (July 19, 2020)

  • JUIText becomes JUI

    • Supports any UIBehaviour based class to use

      All UGUI components in Unity is UIBehaviour based

  • JUI supports data binding

  • JUI supports message mode, will be called when binded data has changed

  • BindableProperty is coming, use it in your data class or sturcts

  • Improve performence of looping in JUIBehaviour

  • Improve performence on getting generic components in JUI

  • Update showcases to a countdown showcase and a data update & binding showcase

v0.3.1 (July 18, 2020)

  • Combined Unity-GUI-Redis, which is also part of JEngine, now belongs to JEngine.Redis namespace

  • Update XAsset dependency to latest version:

    • Supports network monitor
    • Build bundles name by hash
    • Tiny improvment on the framework
  • Rewrite ILRuntime:

    • Supports OnDestory method called by MonoBehaviour
    • Tiny improvment on the framework
  • JUI is now coming:

    Only supports Text at the moment

    • Based on JUIBehaviour
    • Method-Chaining which makes more stramlined and beautiful codes
    • Unique and managable lifecycle
  • Improve JUIBehaviour

v0.3 (July 17, 2020)

  • Update ILRuntime to v1.6.3 which fixes heaps of bugs in the dependency
  • JEngine Lifecyle is now included, it is only a prototype and will be extended in the future with more base codes.
  • JUIBehaviour is coming, it is a behaviour base on MonoBehaviour but more friendly to manage UI components' lifecycles which are not require to change that frequently, and runs better, you can use less codes to implement more

v0.2 (July 16, 2020)

  • Supports development mode which loads dll and resources from local
  • Automatically clean up unnecessary dlls, pdbs, etc. in DLL Resource Directory
  • Automatically convert dll into bytes in Editor

v0.1 (July 14, 2020)

  • Automatically generate Update Resources
  • Automatically handle Hot-update DLL
  • Update Hot-update codes and resources from server (Base on XAsset & ILRuntime)
  • Supports local hot-update code development in Unity Editor via dll in Asstes/HotUpdateResources/Dll/HotUpdateScripts.dll