Skip to content

Commit 1c495d6

Browse files
authored
CHANGE: Generated action wrappers now won't Destroy the generated A… (#882)
1 parent 954bf3c commit 1c495d6

File tree

4 files changed

+11
-5
lines changed

4 files changed

+11
-5
lines changed

Assets/Samples/SimpleDemo/SimpleControls.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
// GENERATED AUTOMATICALLY FROM 'Assets/Samples/SimpleDemo/SimpleControls.inputactions'
22

3+
using System;
34
using System.Collections;
45
using System.Collections.Generic;
56
using UnityEngine.InputSystem;
67
using UnityEngine.InputSystem.Utilities;
78

8-
public class SimpleControls : IInputActionCollection
9+
public class SimpleControls : IInputActionCollection, IDisposable
910
{
1011
private InputActionAsset asset;
1112
public SimpleControls()
@@ -154,7 +155,7 @@ public SimpleControls()
154155
m_gameplay_look = m_gameplay.FindAction("look", throwIfNotFound: true);
155156
}
156157

157-
~SimpleControls()
158+
public void Dispose()
158159
{
159160
UnityEngine.Object.Destroy(asset);
160161
}

Packages/com.unity.inputsystem/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,10 @@ however, it has to be formatted properly to pass verification tests.
1818

1919
- Fixed a bug where multiple composite bindings for the same controls but on different action maps would throw exceptions.
2020

21+
### Changed
22+
23+
- Generated action wrappers now won't `Destroy` the generated Asset in a finalizer, but instead implement `IDisposable`.
24+
2125
## [1.0.0-preview] - 2019-9-20
2226

2327
### Fixed

Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionCodeGenerator.cs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public struct Options
6666
writer.WriteLine($"// GENERATED AUTOMATICALLY FROM '{options.sourceAssetPath}'\n");
6767

6868
// Usings.
69+
writer.WriteLine("using System;");
6970
writer.WriteLine("using System.Collections;");
7071
writer.WriteLine("using System.Collections.Generic;");
7172
writer.WriteLine("using UnityEngine.InputSystem;");
@@ -81,7 +82,7 @@ public struct Options
8182
}
8283

8384
// Begin class.
84-
writer.WriteLine($"public class {options.className} : IInputActionCollection");
85+
writer.WriteLine($"public class {options.className} : IInputActionCollection, IDisposable");
8586
writer.BeginBlock();
8687

8788
writer.WriteLine($"private InputActionAsset asset;");
@@ -108,7 +109,7 @@ public struct Options
108109
writer.EndBlock();
109110
writer.WriteLine();
110111

111-
writer.WriteLine($"~{options.className}()");
112+
writer.WriteLine("public void Dispose()");
112113
writer.BeginBlock();
113114
writer.WriteLine("UnityEngine.Object.Destroy(asset);");
114115
writer.EndBlock();

Packages/com.unity.inputsystem/InputSystem/Editor/AssetImporter/InputActionImporter.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ namespace UnityEngine.InputSystem.Editor
2222
[ScriptedImporter(kVersion, InputActionAsset.Extension)]
2323
internal class InputActionImporter : ScriptedImporter
2424
{
25-
private const int kVersion = 6;
25+
private const int kVersion = 7;
2626

2727
private const string kActionIcon = "Packages/com.unity.inputsystem/InputSystem/Editor/Icons/InputAction.png";
2828
private const string kAssetIcon = "Packages/com.unity.inputsystem/InputSystem/Editor/Icons/InputActionAsset.png";

0 commit comments

Comments
 (0)