georgejecook / UnityTimelineEvents

Adds ability to execute arbitrary code, with int, bool, float, string and enum values, at both runtime and edit time, from Unity timelines.
276 stars 30 forks source link

Consider UnityEvents #4

Open jbienzms opened 6 years ago

jbienzms commented 6 years ago

If possible, please consider using Unity Events for TimelineEvent instead of the current way of selecting methods to invoke. Unity Events can call methods with and without parameters, they can set fields, and they even come with inspector support for wiring up targets and supplying values.

image

For more information please see: Unity Events

Thanks!

scotthovestadt commented 6 years ago

@georgejecook Would you accept this as a PR? I have it working locally and could clean it up to submit.

georgejecook commented 6 years ago

Travelling at the mo. I'll review in due course.

On Sat, Jun 2, 2018, 4:34 AM scotthovestadt notifications@github.com wrote:

@georgejecook https://github.com/georgejecook Would you accept this as a PR? I have it working locally and could clean it up to submit.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/georgejecook/UnityTimelineEvents/issues/4#issuecomment-394073628, or mute the thread https://github.com/notifications/unsubscribe-auth/ABKIUWrnYHL-127bCaFKMwye5AZeqJRKks5t4lwPgaJpZM4Ta-q- .

jbienzms commented 6 years ago

@scotthovestadt If you have this working, please do clean it up and submit it as a PR. Another user (iBicha) submitted PR #1 for this but the code was not deemed to be robust enough. If you have a clean implementation, please submit a PR so George can review it. And thank you for taking the time to implement and share!

georgejecook commented 6 years ago

Yes! totally.

guys - just got back to my house this week after my mum had a stroke and emergency surgery - she lives on the other side of the world so I had a lot of travel. I’ll get back on this asap this week: I promise - this project is important to me, and I appreciate all of your contributions. Submit whatever you like I’ll get onto it tomorrow/Wednesday

Thanks for your understanding.

@jared thanks for commenting during my radio silence. Good man!

On June 4, 2018 at 11:35:57 AM, Jared Bienz [MSFT] (notifications@github.com) wrote:

@scotthovestadt https://github.com/scotthovestadt If you have this working, please do clean it up and submit it as a PR. Another user (iBicha) submitted PR #1 https://github.com/georgejecook/UnityTimelineEvents/pull/1 for this but the code was not deemed to be robust enough. If you have a clean implementation, please submit a PR so George can review it. And thank you for taking the time to implement and share!

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/georgejecook/UnityTimelineEvents/issues/4#issuecomment-394419107, or mute the thread https://github.com/notifications/unsubscribe-auth/ABKIUV_M-9mBWXjGTC1HFTGFBF6yclIyks5t5WHsgaJpZM4Ta-q- .

jbienzms commented 6 years ago

Oh man, so very sorry to hear the news @georgejecook. TOTALLY understandable and glad you were able to take time and be with family. We (and the code) will still be here when you get back!

scotthovestadt commented 6 years ago

@jbienzms Thanks for calling out PR #1. I see he did something similar and ran into the same issue I've been working on resolving.

Basically the difficulty is that PlayableAsset (base of ScriptableObject) don't actually live in the scene. They are (just like the Timeline) assets independent of the scene. If you try to render a UnityEvent straight up in the Inspector, it will only allow you to select static assets.

The workaround I came up with is to proxy a UnityEvent for a hidden object in the Scene view. This works for my use-case, which currently doesn't share Timelines across scenes.

I'm working on resolving the architectural issue by allowing each Scene using the Timeline to save it's own events.

scotthovestadt commented 6 years ago

Another approach might actually be to just serialize it into the same format you have today and just try to use the Inspector component only of UnityEvents...

I think I'm going to see if that's possible to do that in a clean way.

georgejecook commented 6 years ago

I'm back at regular work guys. My mum mostly recovered. Thanks for good sentiments. If you guys have a viable working solution for UnityEvents, I'm happy to merge it. I have the following constraints:

  1. A proxy is acceptible;
  2. But the data to create the proxy must be contained entirely it the timeline event system (i.e, if you lose the proxy object, you don't lose the event)
  3. Happy to even have a menu/button/some other trigger to create the proxy object.
  4. Must be able to choose TImeLineEvents, of the current solution I have.

I've had ideas around it; but I'm too busy to do anything with this. Will be very happy to have more input from you guys!