Search Issue Tracker
Won't Fix
Votes
11
Found in [Package]
1.15.1
Issue ID
ADDR-1507
Regression
No
[Addressables]Timeline's signals won't launch when lhe Timeline is loaded by Addressables on Android
Reproduction steps:
1. Download and open the user-attached project "AddressablesTimelineBug.zip"
2. Open the Addressables Groups window (Window -> Asset Management -> Addressables -> Groups)
3. Click on "Build -> New Build -> Default Build Script"
4. At the root of your Android phone, create a folder named "Addressables/Test".
5. Copy the built files from "<ProjectPath>/ServerData/Addressables" to "Addressables/Test"
6. Build and run the project on Android.
Expected result: The Capsule GameObject should keep appearing and disappearing
Actual result: The Capsule remains active all the time
Reproducible with: 2019.4.11f1 (1.1.5, 1.15.1), 2020.2.0b3 (1.15.1)
Reproduces on:
VLNQA00012, Samsung Galaxy S6 (SM-G920F), Android 7.0, CPU: Exynos 7 Octa 7420, GPU: Mali-T760
VLNQA00122, Samsung Galaxy S9 (SM-G960F), Android 9, CPU: Exynos 9 Series 9810, GPU: Mali-G72
VLNQA00125, Google Pixel 2 (Pixel 2), Android 8.1.0, CPU: Snapdragon 835 MSM8998, GPU: Adreno (TM) 540
Does not reproduce on: Windows 10
Notes:
Could not test on Unity 2018.4 due to project breaking.
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- Mouse device is disabled in Play Mode when the "Device Simulator" tab is present as an inactive tab and Game view is not maximised
- GameObject with the Visual Effect Component is not rendered in the Scene view when it is reenabled in the Inspector and the Play mode is paused
- Prefab icon blends in when selected in Project window with the Light Editor theme enabled
- Textures from other Sprites in the Assets leak into Sprite Renderer Sprites when Sprite Atlas v2 is used
- Errors “UI Error: Invalid GUILayout state in TestRunnerWindow view“ and “ArgumentException: An item with the same key has already been added“ are present when running tests with names that duplicate after truncation in the Test Runner window
Resolution Note:
The user is using Addressables to load a Timeline Instance, which is a prefab that contains a Playable Director component. This component has a reference to the Timeline Asset.
The Timeline Asset contains Signal Emitters, which have references to the Signal Assets. There is another GameObject in the scene that has a Signal Receiver component, which also has references to the Signal Assets. The issue is that these Signal Asset references aren't considered equivalent.
See this blog post for more information about Timeline Signals: https://blogs.unity3d.com/2019/05/21/how-to-use-timeline-signals/.
One workaround is to manually set the Signal Asset references on the Signal Emitters. The Signal Asset references are stored on a GameObject in the scene.
In the example below, the references are stored on the GameObject containing the AddressablesInstantiator script component.
SignalTrack signalTrack = (SignalTrack)asset.GetRootTrack(3);
List<IMarker> markers = signalTrack.GetMarkers().ToList();
AddressablesInstantiator instantiator = FindObjectOfType<AddressablesInstantiator>();
for(int i = 0; i < markers.Count; i++)
{
SignalEmitter emitter = (SignalEmitter)markers[i];
emitter.asset = instantiator.signalAssets[i];
}
Another workaround is to put the Timeline Instance prefab in the same scene as the GameObject with the Signal Receiver component. At this point the timeline signals will function as expected when entering Play Mode or running a build.
To continue using Addressables to load the objects, create a new scene that acts as a bootstrap scene. Then use Addressables.LoadSceneAsync to load the scene containing the Timeline Instance and the GameObject with the Signal Receiver component.