Git Product home page Git Product logo

serially's People

Contributors

jasonboukheir avatar semantic-release-bot avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

serially's Issues

Fix Publish

Need a way to handle a manual release in case the publish command fails.

Fields marked with [ShowSerializeReference] without [TypeFilter] raise a NullReferenceException

NullReferenceException: Object reference not set to an instance of an object
CareBoo.Serially.Editor.ShowSerializeReferenceDrawer.GetSelectableTypes (UnityEditor.SerializedProperty property, System.Reflection.FieldInfo fieldInfo) (at Library/PackageCache/[email protected]/Editor/ShowSerializeReferenceDrawer.cs:95)
CareBoo.Serially.Editor.ShowSerializeReferenceDrawer+<>c__DisplayClass5_0.<OnGUI>b__0 () (at Library/PackageCache/[email protected]/Editor/ShowSerializeReferenceDrawer.cs:74)
System.Lazy`1[T].CreateValue () (at <fb001e01371b4adca20013e0ac763896>:0)
System.Lazy`1[T].LazyInitValue () (at <fb001e01371b4adca20013e0ac763896>:0)
System.Lazy`1[T].get_Value () (at <fb001e01371b4adca20013e0ac763896>:0)
CareBoo.Serially.Editor.TypeField.HandlePickerButtonClicked () (at Library/PackageCache/[email protected]/Editor/TypeField.cs:116)
CareBoo.Serially.Editor.TypeField.HandleMouseDown () (at Library/PackageCache/[email protected]/Editor/TypeField.cs:110)
CareBoo.Serially.Editor.TypeField.HandleCurrentEvent () (at Library/PackageCache/[email protected]/Editor/TypeField.cs:105)
CareBoo.Serially.Editor.TypeField.DrawGui () (at Library/PackageCache/[email protected]/Editor/TypeField.cs:88)
CareBoo.Serially.Editor.ShowSerializeReferenceDrawer.OnGUI (UnityEngine.Rect position, UnityEditor.SerializedProperty property, UnityEngine.GUIContent label, CareBoo.Serially.Editor.GuiEvent currentEvent, System.Reflection.FieldInfo fieldInfo) (at Library/PackageCache/[email protected]/Editor/ShowSerializeReferenceDrawer.cs:75)
CareBoo.Serially.Editor.ShowSerializeReferenceDrawer.OnGUI (UnityEngine.Rect position, UnityEditor.SerializedProperty property, UnityEngine.GUIContent label) (at Library/PackageCache/[email protected]/Editor/ShowSerializeReferenceDrawer.cs:60)

Context Menu Hides Existing Menu Items

The added context menu items, Copy and Paste, hide the existing context menu items like Copy Property Path and Add Element from the array / list methods.

Refactor TypeField

Currently using a hack to test TypeField. Instead, I should be extracting a public method that includes all context parameters (e.g. Event.current) to make it easier to test:

public static Rect TypeField(Rect position, Type type, Type[] types, Action<Type> onSelect, IMGUIEvent imguiEvent, GUISkin skin, ...)
{
    ...
}

Copy/Paste Other SerializeReference Objects

Add a contextmenu to the ShowValueType drawer that can copy and paste a SerializeReference object.

Copy should add the object to a static field.
Paste should attempt to paste the object, and if it's unassignable, it should show a warning in the console.

Update README.md and docs for release

  • Fill out the package Packages/com.careboo.serially/README.md template.
  • Update the project README.md with the changes from the package one.
  • Make sure how-to-install guide is visible.
  • Add recommended workflow for SerializableType and ShowSerializeReference.

Type Filter documentation API mismatch

The serializable type documentation here is using the following text

public IEnumerable<Type> MyCustomFilter(IEnumerable<Type> types)

The delegate given to TypeFilter must be a Func<IEnumerable, IEnumerable> to work.

The documentation here is incorrect. The correct delegate type is of Func<Type, bool>. The Documentation needs to be changed to the correct API first: Func<IEnumerable<Type>, IEnumerable<Type>> -> Func<Type, bool>, then we can think about supporting delegates of type Func<IEnumerable<Type>,IEnumerable<Type>>.

Split TypeField into TypeField and ManagedReferenceField

TypeField is currently using IMGUI, and serves both the ShowSerializeReferenceDrawer and the SerializableTypeDrawer. Although these two drawers look the same, they're different.

  • ShowSerializeReferenceDrawer should follow UnityEngine.Object field drawer style.
  • SerializableTypeDrawer should follow an enum field drawer style.

Missing `LICENSE.md.meta`

This is causing the following error when using the package:

Asset Packages/com.careboo.serially/LICENSE.md has no meta file, but it's in an immutable folder. The asset will be ignored.

Use `MonoScript` instead of `GuidAttribute` and `ProvideSourceInfo` attributes

GuidAttribute and ProvideSourceInfo attributes are used to uniquely reference classes. The Unity Editor already does this with meta files, and exposes it through the MonoScript asset.

The guid should be gotten from the MonoScript asset, and the pinging of the file can be handled through this asset as well.

The only flaw through this method, is that it will scale as O(n) to lookup types through the MonoImporter.GetAllRuntimeMonoScripts. Caching can help reduce any bottlenecks.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.