2d progress
This commit is contained in:
1 parent
9f026b76d6
commit
63c3549673
70 files changed
+1002
-6254
No files matched your search
Generated
+72
-86
@@ -5,51 +5,73 @@
|
|||||||
</component>
|
</component>
|
||||||
<component name="ChangeListManager">
|
<component name="ChangeListManager">
|
||||||
<list default="true" id="7a4e4e1b-6c5f-4c8d-968e-512e90aa8c7c" name="Changes" comment="">
|
<list default="true" id="7a4e4e1b-6c5f-4c8d-968e-512e90aa8c7c" name="Changes" comment="">
|
||||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AICarDriver.cs" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AICarDriver.cs.meta" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerRBCarController.cs" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerRBCarController.cs.meta" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/WinScreen.cs" afterDir="false" />
|
|
||||||
<change afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/WinScreen.cs.meta" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/.idea/.idea.Infra/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Infra/.idea/workspace.xml" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/.idea/.idea.Infra/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/.idea.Infra/.idea/workspace.xml" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/AddressableAssetsData/AssetGroups/Default Local Group.asset" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/Entity/Enemies/Bee.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Debug/SceneChooser.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Debug/SceneChooser.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Platformer/PlatformerState.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Car/CarWheelRotatorPlayer.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceScores.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/RaceScores.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScores.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScores.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIRacerID.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/AIRacerID.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/WinScreen.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/WinScreen.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Agent.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Agent.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Seek.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/AI/ID/Behaviours/Seek.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarControllerRB.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/CarControllerRB.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerCarControllerRB.cs.meta" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/CarControllerRB.cs.meta" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerRacer.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Player/PlayerRacer.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Racer.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/Racer.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Racer/RacerFactory.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/CheckPoint.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/RaceTrackData.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/Track/RaceTrackData.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Example/Race/UI/PlayerScoreCounter.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/AppStateMachine.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/AppStateMachine.cs" afterDir="false" />
|
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/PapaInstaller.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/SceneInstallers/GameplaySceneInstaller.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LoadingPanel.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/BootstrapState.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/LogoPanel.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween.meta" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/DOTween.XML" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/DOTween.XML.meta" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/SceneLoader/SceneLoader.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/DOTween.dll" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/DamnEmptyPanel.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/DOTween.dll.meta" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/MenuChoosePanel.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/Panels/MenuChoosePanel.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor.meta" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIFactory.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIFactory.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/DOTweenEditor.XML" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanelType.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIPanelType.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/DOTweenEditor.XML.meta" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Code/Infrastructure/UI/UIService.cs" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/DOTweenEditor.dll" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Misc/Point.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/Example/Misc/Point.prefab" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/DOTweenEditor.dll.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/DOTweenIcon.png" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/DOTweenIcon.png.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/DOTweenMiniIcon.png.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/Footer.png" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/Footer.png.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/Footer_dark.png" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/Footer_dark.png.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/Header.jpg" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Editor/Imgs/Header.jpg.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleAudio.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleAudio.cs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleEPOOutline.cs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModulePhysics.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModulePhysics.cs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModulePhysics2D.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModulePhysics2D.cs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleSprite.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleSprite.cs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleUI.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleUI.cs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleUnityVersion.cs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleUtils.cs" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/Modules/DOTweenModuleUtils.cs.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/readme.txt" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/DOTween/readme.txt.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Enemies/Bee/Bee.prefab" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Enemies/Bee/Bee.prefab.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Enemies/Boar/Boar.prefab" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Enemies/Boar/Boar.prefab.meta" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Enemies/Snail/Snail.prefab" beforeDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/Assets/Resources/Example/Platformer/Characters/Enemies/Snail/Snail.prefab.meta" beforeDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/UI/Fonts/Bebas Neue Cyrillic SDF.asset" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/AIGreen.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/AIGreen.asset" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Resources/UI/Sprites/Static.renderTexture" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources/UI/Sprites/Static.renderTexture" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/AIRed.asset" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Configs/AIRed.asset" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Platformer/Platformer.unity" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerCounter.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerCounter.prefab" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/ConfigLocator.Generated.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerRacist.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/PlayerRacist.prefab" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/LayerMasksConfigConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/LayerMasksConfigConfig.Generated.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Racist (1).prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/Example/Race/Racist (1).prefab" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerEnemySettingsConfig.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/PlatformerEnemySettingsConfig.Generated.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Resources_moved/UI/Panels/SceneSelectPanel.prefab" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Resources_moved/UI/Panels/SceneSelectPanel.prefab" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/UnityCodeGen.Generated/SystemConfigsReferences.Generated.cs" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Scenes/Gameplay.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/Gameplay.unity" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Packages/manifest.json" beforeDir="false" afterPath="$PROJECT_DIR$/Packages/manifest.json" afterDir="false" />
|
||||||
<change beforePath="$PROJECT_DIR$/Assets/Scenes/MainMenu.unity" beforeDir="false" afterPath="$PROJECT_DIR$/Assets/Scenes/MainMenu.unity" afterDir="false" />
|
<change beforePath="$PROJECT_DIR$/Packages/packages-lock.json" beforeDir="false" afterPath="$PROJECT_DIR$/Packages/packages-lock.json" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ProjectSettings/Physics2DSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/Physics2DSettings.asset" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ProjectSettings/ProjectSettings.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/ProjectSettings.asset" afterDir="false" />
|
||||||
|
<change beforePath="$PROJECT_DIR$/ProjectSettings/TagManager.asset" beforeDir="false" afterPath="$PROJECT_DIR$/ProjectSettings/TagManager.asset" afterDir="false" />
|
||||||
</list>
|
</list>
|
||||||
<option name="SHOW_DIALOG" value="false" />
|
<option name="SHOW_DIALOG" value="false" />
|
||||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||||
@@ -60,8 +82,10 @@
|
|||||||
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
||||||
</component>
|
</component>
|
||||||
<component name="HighlightingSettingsPerFile">
|
<component name="HighlightingSettingsPerFile">
|
||||||
|
<setting file="file://$PROJECT_DIR$/Assets/Code/Example/Race/PlayerPrefsRacePoopshitter.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/Assets/Code/Infrastructure/Audio/AudioFactory.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.cysharp.unitask@a85b92a8e443/Runtime/UniTaskScheduler.cs" root0="SKIP_HIGHLIGHTING" />
|
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.cysharp.unitask@a85b92a8e443/Runtime/UniTaskScheduler.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
|
<setting file="file://$PROJECT_DIR$/Library/PackageCache/com.gustavopsantos.reflex@fabfbc86f712/Injectors/MethodInjector.cs" root0="SKIP_HIGHLIGHTING" />
|
||||||
<setting file="file://C:/TEMP/SourceGeneratedDocuments/1A3209B82D230FF4FE3E50D7/InfraGens/Code.Infrastructure.Generators.SceneLoaderGenerator/SceneLoader.Generated.g.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://C:/TEMP/SourceGeneratedDocuments/1A3209B82D230FF4FE3E50D7/InfraGens/Code.Infrastructure.Generators.SceneLoaderGenerator/SceneLoader.Generated.g.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://C:/TEMP/SourceGeneratedDocuments/1A3209B82D230FF4FE3E50D7/InfraGens/StateMachineGenerator/Code.Infrastructure.App.AppStateMachine.StateMachine.Generated.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://C:/TEMP/SourceGeneratedDocuments/1A3209B82D230FF4FE3E50D7/InfraGens/StateMachineGenerator/Code.Infrastructure.App.AppStateMachine.StateMachine.Generated.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
<setting file="file://C:/TEMP/SourceGeneratedDocuments/1A3209B82D230FF4FE3E50D7/InfraGens/StateMachineGenerator/Code.Infrastructure.App.States.BootstrapState.State.Generated.cs" root0="FORCE_HIGHLIGHTING" />
|
<setting file="file://C:/TEMP/SourceGeneratedDocuments/1A3209B82D230FF4FE3E50D7/InfraGens/StateMachineGenerator/Code.Infrastructure.App.States.BootstrapState.State.Generated.cs" root0="FORCE_HIGHLIGHTING" />
|
||||||
@@ -125,10 +149,10 @@
|
|||||||
</option>
|
</option>
|
||||||
<method v="2" />
|
<method v="2" />
|
||||||
</configuration>
|
</configuration>
|
||||||
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="6116">
|
<configuration name="Attach to Unity Editor" type="UNITY_DEBUG_RUN_CONFIGURATION" factoryName="Unity Debug" show_console_on_std_err="false" show_console_on_std_out="false" port="50000" address="localhost" ignored-value-for-modified-check="9692">
|
||||||
<option name="allowRunningInParallel" value="false" />
|
<option name="allowRunningInParallel" value="false" />
|
||||||
<option name="listenPortForConnections" value="false" />
|
<option name="listenPortForConnections" value="false" />
|
||||||
<option name="pid" value="6116" />
|
<option name="pid" value="9692" />
|
||||||
<option name="projectPathOnTarget" />
|
<option name="projectPathOnTarget" />
|
||||||
<option name="selectedOptions">
|
<option name="selectedOptions">
|
||||||
<list />
|
<list />
|
||||||
@@ -154,6 +178,7 @@
|
|||||||
<workItem from="1770407896165" duration="404000" />
|
<workItem from="1770407896165" duration="404000" />
|
||||||
<workItem from="1770451319773" duration="10815000" />
|
<workItem from="1770451319773" duration="10815000" />
|
||||||
<workItem from="1770634886406" duration="8191000" />
|
<workItem from="1770634886406" duration="8191000" />
|
||||||
|
<workItem from="1771758321259" duration="9067000" />
|
||||||
</task>
|
</task>
|
||||||
<servers />
|
<servers />
|
||||||
</component>
|
</component>
|
||||||
@@ -173,58 +198,19 @@
|
|||||||
<component name="XDebuggerManager">
|
<component name="XDebuggerManager">
|
||||||
<breakpoint-manager>
|
<breakpoint-manager>
|
||||||
<breakpoints>
|
<breakpoints>
|
||||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
|
||||||
<url>file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs</url>
|
|
||||||
<line>141</line>
|
|
||||||
<properties documentPath="A:\Projects\Infra\Assets\Code\Infrastructure\App\States\GameplayState.cs" containingFunctionPresentation="Method 'EndTheGame'">
|
|
||||||
<startOffsets>
|
|
||||||
<option value="5436" />
|
|
||||||
</startOffsets>
|
|
||||||
<endOffsets>
|
|
||||||
<option value="5530" />
|
|
||||||
</endOffsets>
|
|
||||||
</properties>
|
|
||||||
<option name="timeStamp" value="13" />
|
|
||||||
</line-breakpoint>
|
|
||||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
|
||||||
<url>file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/GameplayState.cs</url>
|
|
||||||
<line>62</line>
|
|
||||||
<properties documentPath="A:\Projects\Infra\Assets\Code\Infrastructure\App\States\GameplayState.cs" containingFunctionPresentation="Method 'GameplayLoadingCompleted'">
|
|
||||||
<startOffsets>
|
|
||||||
<option value="2095" />
|
|
||||||
</startOffsets>
|
|
||||||
<endOffsets>
|
|
||||||
<option value="2152" />
|
|
||||||
</endOffsets>
|
|
||||||
</properties>
|
|
||||||
<option name="timeStamp" value="14" />
|
|
||||||
</line-breakpoint>
|
|
||||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
||||||
<url>file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs</url>
|
<url>file://$PROJECT_DIR$/Assets/Code/Infrastructure/App/States/MainMenuState.cs</url>
|
||||||
<line>60</line>
|
<line>58</line>
|
||||||
<properties documentPath="A:\Projects\Infra\Assets\Code\Infrastructure\App\States\MainMenuState.cs" containingFunctionPresentation="Method 'OnReadyToPlay'">
|
<properties documentPath="A:\Projects\Infra\Assets\Code\Infrastructure\App\States\MainMenuState.cs" containingFunctionPresentation="Method 'OnReadyToPlay'">
|
||||||
<startOffsets>
|
<startOffsets>
|
||||||
<option value="2151" />
|
<option value="2072" />
|
||||||
</startOffsets>
|
</startOffsets>
|
||||||
<endOffsets>
|
<endOffsets>
|
||||||
<option value="2210" />
|
<option value="2131" />
|
||||||
</endOffsets>
|
</endOffsets>
|
||||||
</properties>
|
</properties>
|
||||||
<option name="timeStamp" value="15" />
|
<option name="timeStamp" value="15" />
|
||||||
</line-breakpoint>
|
</line-breakpoint>
|
||||||
<line-breakpoint enabled="true" type="DotNet Breakpoints">
|
|
||||||
<url>file://$PROJECT_DIR$/Assets/Code/Example/Race/RaceGame.cs</url>
|
|
||||||
<line>62</line>
|
|
||||||
<properties documentPath="A:\Projects\Infra\Assets\Code\Example\Race\RaceGame.cs" containingFunctionPresentation="Method 'PlaceRacers'">
|
|
||||||
<startOffsets>
|
|
||||||
<option value="1879" />
|
|
||||||
</startOffsets>
|
|
||||||
<endOffsets>
|
|
||||||
<option value="2084" />
|
|
||||||
</endOffsets>
|
|
||||||
</properties>
|
|
||||||
<option name="timeStamp" value="16" />
|
|
||||||
</line-breakpoint>
|
|
||||||
</breakpoints>
|
</breakpoints>
|
||||||
</breakpoint-manager>
|
</breakpoint-manager>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
@@ -1,8 +1,5 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using DG.Tweening;
|
using PrimeTween;
|
||||||
using DG.Tweening.Core;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Code.Example.Platformer.Entity.Enemies
|
namespace Code.Example.Platformer.Entity.Enemies
|
||||||
@@ -10,49 +7,55 @@ namespace Code.Example.Platformer.Entity.Enemies
|
|||||||
public class Bee : Entity
|
public class Bee : Entity
|
||||||
{
|
{
|
||||||
[SerializeField] private List<Transform> partolPoints;
|
[SerializeField] private List<Transform> partolPoints;
|
||||||
private bool _onPatrol;
|
[SerializeField] private bool onPatrol = true;
|
||||||
private bool _onPatrolMoveDamnit;
|
private int _currentPatrolPoint;
|
||||||
private int _currentPartolPoint;
|
|
||||||
|
|
||||||
private Transform _currentTarget;
|
private Vector3 _velocity = new Vector3(1,1,1);
|
||||||
private TweenerCore<Vector3, Vector3, VectorOptions> _patrolAction;
|
[SerializeField] private Transform _currentTarget;
|
||||||
|
|
||||||
|
private Tween _patrolAction;
|
||||||
|
|
||||||
protected override void Move()
|
protected override void Move()
|
||||||
{
|
{
|
||||||
if (_onPatrol && !_onPatrolMoveDamnit)
|
if (onPatrol && !_patrolAction.isAlive)
|
||||||
{
|
{
|
||||||
_onPatrolMoveDamnit = true;
|
_patrolAction = Tween
|
||||||
_patrolAction = transform.DOMove(partolPoints[_currentPartolPoint].position, 3f);
|
.PositionAtSpeed(transform,partolPoints[_currentPatrolPoint].position, 0.5f)
|
||||||
_patrolAction.onComplete += OnControlPointReached;
|
.OnComplete(target: this, target => target.OnControlPointReached());
|
||||||
}
|
}
|
||||||
else
|
else if(_currentTarget)
|
||||||
{
|
{
|
||||||
|
|
||||||
var direction = _currentTarget.position - transform.position;
|
var direction = _currentTarget.position - transform.position;
|
||||||
direction.Normalize();
|
direction.Normalize();
|
||||||
var targetPosition = _currentTarget.position + direction * -2f;
|
var targetPosition = _currentTarget.position + direction * -2f;
|
||||||
|
|
||||||
UnityEngine.Debug.DrawLine(transform.position, targetPosition, Color.red);
|
UnityEngine.Debug.DrawLine(transform.position, targetPosition, Color.red);
|
||||||
|
|
||||||
transform.DOMove(_currentTarget.position, 2f).onComplete += OnControlPointReached;
|
transform.position = Vector3.SmoothDamp(transform.position,_currentTarget.position,ref _velocity, 1f);
|
||||||
|
// Tween
|
||||||
|
// .PositionAtSpeed(transform, _currentTarget.position, 1f).OnUpdate(transform, );
|
||||||
|
// // .OnComplete(OnControlPointReached);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnControlPointReached()
|
private void OnControlPointReached()
|
||||||
{
|
{
|
||||||
if (++_currentPartolPoint >= partolPoints.Count) _currentPartolPoint = 0;
|
if (++_currentPatrolPoint >= partolPoints.Count) _currentPatrolPoint = 0;
|
||||||
_onPatrolMoveDamnit = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void GotTarget(Transform other)
|
public void GotTarget(Transform other)
|
||||||
{
|
{
|
||||||
_onPatrol = false;
|
onPatrol = false;
|
||||||
|
|
||||||
_currentTarget = other;
|
_currentTarget = other;
|
||||||
_patrolAction?.Complete();
|
|
||||||
|
_patrolAction.Stop();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LostTarget()
|
public void LostTarget()
|
||||||
{
|
{
|
||||||
_onPatrol = true;
|
onPatrol = true;
|
||||||
_currentTarget = null;
|
_currentTarget = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
using Code.Infrastructure.App;
|
using Code.Infrastructure.App;
|
||||||
|
using Code.Infrastructure.Audio;
|
||||||
using Code.Infrastructure.Camera;
|
using Code.Infrastructure.Camera;
|
||||||
using Code.Infrastructure.EventBus;
|
using Code.Infrastructure.EventBus;
|
||||||
using Code.Infrastructure.Generators;
|
using Code.Infrastructure.Generators;
|
||||||
@@ -36,6 +37,7 @@ namespace Code.Example.Platformer
|
|||||||
|
|
||||||
private void LoadingCompleted()
|
private void LoadingCompleted()
|
||||||
{
|
{
|
||||||
|
Context.AudioService.CancelMusic(AudioNames.UISounds,0);
|
||||||
Context.UIService.ClosePanel(UIPanelType.Loading);
|
Context.UIService.ClosePanel(UIPanelType.Loading);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
using DG.Tweening;
|
using PrimeTween;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
|
|
||||||
namespace Code.Example.Race.Racer.Car
|
namespace Code.Example.Race.Racer.Car
|
||||||
@@ -15,7 +15,7 @@ namespace Code.Example.Race.Racer.Car
|
|||||||
{
|
{
|
||||||
var wheelRotation = wheel.localRotation.eulerAngles;
|
var wheelRotation = wheel.localRotation.eulerAngles;
|
||||||
wheelRotation.y = amount;
|
wheelRotation.y = amount;
|
||||||
wheel.DOLocalRotate(wheelRotation, 1f);
|
Tween.LocalRotation(wheel,wheelRotation, 1f);
|
||||||
// wheel.localRotation = Quaternion.Euler(wheelRotation);
|
// wheel.localRotation = Quaternion.Euler(wheelRotation);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Code.Infrastructure.UI;
|
using Code.Infrastructure.UI;
|
||||||
using DG.Tweening;
|
using PrimeTween;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
@@ -26,14 +26,14 @@ namespace Code.Example.Race.UI
|
|||||||
}
|
}
|
||||||
public override void Open(Action callback = null)
|
public override void Open(Action callback = null)
|
||||||
{
|
{
|
||||||
image.DOColor(shownColor, 1f);
|
Tween.Color(image,shownColor, 1f);
|
||||||
scoreText.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke();
|
Tween.Color(scoreText,shownColor, 1f).OnComplete( () => callback?.Invoke());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close(Action callback = null)
|
public override void Close(Action callback = null)
|
||||||
{
|
{
|
||||||
image.DOColor(hiddenColor, 1f);
|
Tween.Color(image,hiddenColor, 1f);
|
||||||
scoreText.DOColor(hiddenColor, 1f).onComplete = () => callback?.Invoke();
|
Tween.Color(scoreText,hiddenColor, 1f).OnComplete( () => callback?.Invoke());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using System;
|
using System;
|
||||||
using Code.Infrastructure.UI;
|
using Code.Infrastructure.UI;
|
||||||
using DG.Tweening;
|
using PrimeTween;
|
||||||
using TMPro;
|
using TMPro;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
@@ -17,14 +17,14 @@ namespace Code.Example.Race.UI
|
|||||||
public void SetText(string text) => winText.text = text;
|
public void SetText(string text) => winText.text = text;
|
||||||
public override void Open(Action callback = null)
|
public override void Open(Action callback = null)
|
||||||
{
|
{
|
||||||
image.DOColor(shownColor, 1f);
|
Tween.Color(image,shownColor, 1f);
|
||||||
winText.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke();
|
Tween.Color(winText,shownColor, 1f).OnComplete( () => callback?.Invoke());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close(Action callback = null)
|
public override void Close(Action callback = null)
|
||||||
{
|
{
|
||||||
image.DOColor(hiddenColor, 1f);
|
Tween.Color(image,hiddenColor, 1f);
|
||||||
winText.DOColor(hiddenColor, 1f).onComplete = () => callback?.Invoke();
|
Tween.Color(winText,hiddenColor, 1f).OnComplete( () => callback?.Invoke());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -13,6 +13,7 @@ using Reflex.Injectors;
|
|||||||
using Unity.Cinemachine;
|
using Unity.Cinemachine;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Rendering.Universal;
|
using UnityEngine.Rendering.Universal;
|
||||||
|
using UnityEngine.SceneManagement;
|
||||||
using Resolution = Reflex.Enums.Resolution;
|
using Resolution = Reflex.Enums.Resolution;
|
||||||
|
|
||||||
namespace Code.Infrastructure.App
|
namespace Code.Infrastructure.App
|
||||||
@@ -32,6 +33,8 @@ namespace Code.Infrastructure.App
|
|||||||
{
|
{
|
||||||
public void InstallBindings(ContainerBuilder containerBuilder)
|
public void InstallBindings(ContainerBuilder containerBuilder)
|
||||||
{
|
{
|
||||||
|
if(SceneManager.GetActiveScene().buildIndex != 0) SceneManager.LoadScene(0, LoadSceneMode.Single);
|
||||||
|
|
||||||
InitLoadings();
|
InitLoadings();
|
||||||
|
|
||||||
containerBuilder.RegisterType(typeof(EventBus.EventBus), Lifetime.Singleton, Resolution.Eager);
|
containerBuilder.RegisterType(typeof(EventBus.EventBus), Lifetime.Singleton, Resolution.Eager);
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using DG.Tweening;
|
using PrimeTween;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
@@ -12,12 +12,12 @@ namespace Code.Infrastructure.UI.Panels
|
|||||||
[SerializeField] private Color hiddenColor;
|
[SerializeField] private Color hiddenColor;
|
||||||
public override void Open(Action callback = null)
|
public override void Open(Action callback = null)
|
||||||
{
|
{
|
||||||
image.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke();
|
Tween.Color(image,shownColor, 1f).OnComplete( () => callback?.Invoke());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close(Action callback = null)
|
public override void Close(Action callback = null)
|
||||||
{
|
{
|
||||||
image.DOColor(hiddenColor, 1f).onComplete += () => callback?.Invoke();
|
Tween.Color(image,hiddenColor, 1f).OnComplete( () => callback?.Invoke());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
using System;
|
using System;
|
||||||
using DG.Tweening;
|
using PrimeTween;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
|
|
||||||
@@ -12,12 +12,12 @@ namespace Code.Infrastructure.UI.Panels
|
|||||||
[SerializeField] private Color hiddenColor;
|
[SerializeField] private Color hiddenColor;
|
||||||
public override void Open(Action callback = null)
|
public override void Open(Action callback = null)
|
||||||
{
|
{
|
||||||
image.DOColor(shownColor, 1f).onComplete = () => callback?.Invoke();
|
Tween.Color(image,shownColor, 1f).OnComplete( () => callback?.Invoke());
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void Close(Action callback = null)
|
public override void Close(Action callback = null)
|
||||||
{
|
{
|
||||||
image.DOColor(hiddenColor, 1f).onComplete += () => callback?.Invoke();
|
Tween.Color(image,hiddenColor, 1f).OnComplete( () => callback?.Invoke());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
File diff suppressed because it is too large.
Load diff
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 619a29c7459169344b7a685b0b9ada64
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b1830ce43b03605458c19d07b1aacb50
|
|
||||||
@@ -1,144 +0,0 @@
|
|||||||
<?xml version="1.0"?>
|
|
||||||
<doc>
|
|
||||||
<assembly>
|
|
||||||
<name>DOTweenEditor</name>
|
|
||||||
</assembly>
|
|
||||||
<members>
|
|
||||||
<member name="T:DG.DOTweenEditor.EditorCompatibilityUtils">
|
|
||||||
<summary>
|
|
||||||
Contains compatibility methods taken from DemiEditor (for when DOTween is without it)
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorCompatibilityUtils.FindObjectOfType``1(System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorCompatibilityUtils.FindObjectOfType(System.Type,System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorCompatibilityUtils.FindObjectsOfType``1(System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorCompatibilityUtils.FindObjectsOfType(System.Type,System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Warning: some versions of this method don't have the includeInactive parameter so it won't be taken into account
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.Start(System.Action)">
|
|
||||||
<summary>
|
|
||||||
Starts the update loop of tween in the editor. Has no effect during playMode.
|
|
||||||
</summary>
|
|
||||||
<param name="onPreviewUpdated">Eventual callback to call after every update</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.Stop(System.Boolean,System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Stops the update loop and clears the onPreviewUpdated callback.
|
|
||||||
</summary>
|
|
||||||
<param name="resetTweenTargets">If TRUE also resets the tweened objects to their original state.
|
|
||||||
Note that this works by calling Rewind on all tweens, so it will work correctly
|
|
||||||
only if you have a single tween type per object and it wasn't killed</param>
|
|
||||||
<param name="clearTweens">If TRUE also kills any cached tween</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.DOTweenEditorPreview.PrepareTweenForPreview(DG.Tweening.Tween,System.Boolean,System.Boolean,System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Readies the tween for editor preview by setting its UpdateType to Manual plus eventual extra settings.
|
|
||||||
</summary>
|
|
||||||
<param name="t">The tween to ready</param>
|
|
||||||
<param name="clearCallbacks">If TRUE (recommended) removes all callbacks (OnComplete/Rewind/etc)</param>
|
|
||||||
<param name="preventAutoKill">If TRUE prevents the tween from being auto-killed at completion</param>
|
|
||||||
<param name="andPlay">If TRUE starts playing the tween immediately</param>
|
|
||||||
</member>
|
|
||||||
<member name="F:DG.DOTweenEditor.EditorVersion.Version">
|
|
||||||
<summary>Full major version + first minor version (ex: 2018.1f)</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DG.DOTweenEditor.EditorVersion.MajorVersion">
|
|
||||||
<summary>Major version</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DG.DOTweenEditor.EditorVersion.MinorVersion">
|
|
||||||
<summary>First minor version (ex: in 2018.1 it would be 1)</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.SetEditorTexture(UnityEngine.Texture2D,UnityEngine.FilterMode,System.Int32)">
|
|
||||||
<summary>
|
|
||||||
Checks that the given editor texture use the correct import settings,
|
|
||||||
and applies them if they're incorrect.
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.DOTweenSetupRequired">
|
|
||||||
<summary>
|
|
||||||
Returns TRUE if setup is required
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.AssetExists(System.String)">
|
|
||||||
<summary>
|
|
||||||
Returns TRUE if the file/directory at the given path exists.
|
|
||||||
</summary>
|
|
||||||
<param name="adbPath">Path, relative to Unity's project folder</param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.ADBPathToFullPath(System.String)">
|
|
||||||
<summary>
|
|
||||||
Converts the given project-relative path to a full path,
|
|
||||||
with backward (\) slashes).
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.FullPathToADBPath(System.String)">
|
|
||||||
<summary>
|
|
||||||
Converts the given full path to a path usable with AssetDatabase methods
|
|
||||||
(relative to Unity's project folder, and with the correct Unity forward (/) slashes).
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.ConnectToSourceAsset``1(System.String,System.Boolean)">
|
|
||||||
<summary>
|
|
||||||
Connects to a <see cref="T:UnityEngine.ScriptableObject"/> asset.
|
|
||||||
If the asset already exists at the given path, loads it and returns it.
|
|
||||||
Otherwise, either returns NULL or automatically creates it before loading and returning it
|
|
||||||
(depending on the given parameters).
|
|
||||||
</summary>
|
|
||||||
<typeparam name="T">Asset type</typeparam>
|
|
||||||
<param name="adbFilePath">File path (relative to Unity's project folder)</param>
|
|
||||||
<param name="createIfMissing">If TRUE and the requested asset doesn't exist, forces its creation</param>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.GetAssemblyFilePath(System.Reflection.Assembly)">
|
|
||||||
<summary>
|
|
||||||
Full path for the given loaded assembly, assembly file included
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.AddGlobalDefine(System.String)">
|
|
||||||
<summary>
|
|
||||||
Adds the given global define if it's not already present
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.RemoveGlobalDefine(System.String)">
|
|
||||||
<summary>
|
|
||||||
Removes the given global define if it's present
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="M:DG.DOTweenEditor.EditorUtils.HasGlobalDefine(System.String,System.Nullable{UnityEditor.BuildTargetGroup})">
|
|
||||||
<summary>
|
|
||||||
Returns TRUE if the given global define is present in all the <see cref="T:UnityEditor.BuildTargetGroup"/>
|
|
||||||
or only in the given <see cref="T:UnityEditor.BuildTargetGroup"/>, depending on passed parameters.<para/>
|
|
||||||
</summary>
|
|
||||||
<param name="id"></param>
|
|
||||||
<param name="buildTargetGroup"><see cref="T:UnityEditor.BuildTargetGroup"/>to use. Leave NULL to check in all of them.</param>
|
|
||||||
</member>
|
|
||||||
<member name="T:DG.DOTweenEditor.DOTweenDefines">
|
|
||||||
<summary>
|
|
||||||
Not used as menu item anymore, but as a utility function
|
|
||||||
</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DG.DOTweenEditor.UnityEditorVersion.Version">
|
|
||||||
<summary>Full major version + first minor version (ex: 2018.1f)</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DG.DOTweenEditor.UnityEditorVersion.MajorVersion">
|
|
||||||
<summary>Major version</summary>
|
|
||||||
</member>
|
|
||||||
<member name="F:DG.DOTweenEditor.UnityEditorVersion.MinorVersion">
|
|
||||||
<summary>First minor version (ex: in 2018.1 it would be 1)</summary>
|
|
||||||
</member>
|
|
||||||
</members>
|
|
||||||
</doc>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 349bac8e4773b584b822ab83d3f94fef
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Binary file not shown.
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 59bd38d8dc734194ba1f04ea39b85aac
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 1.5 KiB |
@@ -1,130 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6b91addab459f7545ba3dcb7ca8ad792
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 13
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 1
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
flipGreenChannel: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
ignoreMipmapLimit: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: 1
|
|
||||||
aniso: 1
|
|
||||||
mipBias: 0
|
|
||||||
wrapU: 0
|
|
||||||
wrapV: 0
|
|
||||||
wrapW: 0
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 1
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 0
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
swizzle: 50462976
|
|
||||||
cookieLightType: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Standalone
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable: {}
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 319 B |
@@ -1,130 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 0e5e0a6c3ba204c45903041a4f43808f
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 13
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 1
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
flipGreenChannel: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
ignoreMipmapLimit: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: 1
|
|
||||||
aniso: 1
|
|
||||||
mipBias: 0
|
|
||||||
wrapU: 0
|
|
||||||
wrapV: 0
|
|
||||||
wrapW: 0
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 1
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 0
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
swizzle: 50462976
|
|
||||||
cookieLightType: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Standalone
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable: {}
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.3 KiB |
@@ -1,130 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b675ca42bf0d83042b8553477e6b20b4
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 13
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 0
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
flipGreenChannel: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
ignoreMipmapLimit: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: 1
|
|
||||||
aniso: 1
|
|
||||||
mipBias: 0
|
|
||||||
wrapU: 1
|
|
||||||
wrapV: 1
|
|
||||||
wrapW: 1
|
|
||||||
nPOTScale: 0
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 1
|
|
||||||
alphaIsTransparency: 1
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 2
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
swizzle: 50462976
|
|
||||||
cookieLightType: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 256
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Standalone
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable: {}
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 4.3 KiB |
@@ -1,130 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: b744529a14333ff4aaf428f3586eb9d2
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 13
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 1
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
flipGreenChannel: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
ignoreMipmapLimit: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: 1
|
|
||||||
aniso: 1
|
|
||||||
mipBias: 0
|
|
||||||
wrapU: 0
|
|
||||||
wrapV: 0
|
|
||||||
wrapW: 0
|
|
||||||
nPOTScale: 1
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 1
|
|
||||||
alphaIsTransparency: 0
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 0
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
swizzle: 50462976
|
|
||||||
cookieLightType: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Standalone
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable: {}
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 22 KiB |
@@ -1,130 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 6eb35f05a57f0f84eaf9071b132cfdd7
|
|
||||||
TextureImporter:
|
|
||||||
internalIDToNameTable: []
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 13
|
|
||||||
mipmaps:
|
|
||||||
mipMapMode: 0
|
|
||||||
enableMipMap: 0
|
|
||||||
sRGBTexture: 1
|
|
||||||
linearTexture: 0
|
|
||||||
fadeOut: 0
|
|
||||||
borderMipMap: 0
|
|
||||||
mipMapsPreserveCoverage: 0
|
|
||||||
alphaTestReferenceValue: 0.5
|
|
||||||
mipMapFadeDistanceStart: 1
|
|
||||||
mipMapFadeDistanceEnd: 3
|
|
||||||
bumpmap:
|
|
||||||
convertToNormalMap: 0
|
|
||||||
externalNormalMap: 0
|
|
||||||
heightScale: 0.25
|
|
||||||
normalMapFilter: 0
|
|
||||||
flipGreenChannel: 0
|
|
||||||
isReadable: 0
|
|
||||||
streamingMipmaps: 0
|
|
||||||
streamingMipmapsPriority: 0
|
|
||||||
vTOnly: 0
|
|
||||||
ignoreMipmapLimit: 0
|
|
||||||
grayScaleToAlpha: 0
|
|
||||||
generateCubemap: 6
|
|
||||||
cubemapConvolution: 0
|
|
||||||
seamlessCubemap: 0
|
|
||||||
textureFormat: 1
|
|
||||||
maxTextureSize: 2048
|
|
||||||
textureSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
filterMode: 1
|
|
||||||
aniso: 1
|
|
||||||
mipBias: 0
|
|
||||||
wrapU: 1
|
|
||||||
wrapV: 1
|
|
||||||
wrapW: 1
|
|
||||||
nPOTScale: 0
|
|
||||||
lightmap: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
spriteMode: 0
|
|
||||||
spriteExtrude: 1
|
|
||||||
spriteMeshType: 1
|
|
||||||
alignment: 0
|
|
||||||
spritePivot: {x: 0.5, y: 0.5}
|
|
||||||
spritePixelsToUnits: 100
|
|
||||||
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
spriteGenerateFallbackPhysicsShape: 1
|
|
||||||
alphaUsage: 1
|
|
||||||
alphaIsTransparency: 1
|
|
||||||
spriteTessellationDetail: -1
|
|
||||||
textureType: 2
|
|
||||||
textureShape: 1
|
|
||||||
singleChannelComponent: 0
|
|
||||||
flipbookRows: 1
|
|
||||||
flipbookColumns: 1
|
|
||||||
maxTextureSizeSet: 0
|
|
||||||
compressionQualitySet: 0
|
|
||||||
textureFormatSet: 0
|
|
||||||
ignorePngGamma: 0
|
|
||||||
applyGammaDecoding: 0
|
|
||||||
swizzle: 50462976
|
|
||||||
cookieLightType: 0
|
|
||||||
platformSettings:
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: DefaultTexturePlatform
|
|
||||||
maxTextureSize: 512
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 0
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Standalone
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
- serializedVersion: 4
|
|
||||||
buildTarget: Android
|
|
||||||
maxTextureSize: 2048
|
|
||||||
resizeAlgorithm: 0
|
|
||||||
textureFormat: -1
|
|
||||||
textureCompression: 1
|
|
||||||
compressionQuality: 50
|
|
||||||
crunchedCompression: 0
|
|
||||||
allowsAlphaSplitting: 0
|
|
||||||
overridden: 0
|
|
||||||
ignorePlatformSupport: 0
|
|
||||||
androidETC2FallbackOverride: 0
|
|
||||||
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
||||||
spriteSheet:
|
|
||||||
serializedVersion: 2
|
|
||||||
sprites: []
|
|
||||||
outline: []
|
|
||||||
customData:
|
|
||||||
physicsShape: []
|
|
||||||
bones: []
|
|
||||||
spriteID:
|
|
||||||
internalID: 0
|
|
||||||
vertices: []
|
|
||||||
indices:
|
|
||||||
edges: []
|
|
||||||
weights: []
|
|
||||||
secondaryTextures: []
|
|
||||||
spriteCustomMetadata:
|
|
||||||
entries: []
|
|
||||||
nameFileIdTable: {}
|
|
||||||
mipmapLimitGroupName:
|
|
||||||
pSDRemoveMatte: 0
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,198 +0,0 @@
|
|||||||
// Author: Daniele Giardini - http://www.demigiant.com
|
|
||||||
// Created: 2018/07/13
|
|
||||||
|
|
||||||
#if true // MODULE_MARKER
|
|
||||||
using System;
|
|
||||||
using DG.Tweening.Core;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.Audio; // Required for AudioMixer
|
|
||||||
|
|
||||||
#pragma warning disable 1591
|
|
||||||
namespace DG.Tweening
|
|
||||||
{
|
|
||||||
public static class DOTweenModuleAudio
|
|
||||||
{
|
|
||||||
#region Shortcuts
|
|
||||||
|
|
||||||
#region Audio
|
|
||||||
|
|
||||||
/// <summary>Tweens an AudioSource's volume to the given value.
|
|
||||||
/// Also stores the AudioSource as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach (0 to 1)</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOFade(this AudioSource target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
if (endValue < 0) endValue = 0;
|
|
||||||
else if (endValue > 1) endValue = 1;
|
|
||||||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.volume, x => target.volume = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens an AudioSource's pitch to the given value.
|
|
||||||
/// Also stores the AudioSource as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOPitch(this AudioSource target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.pitch, x => target.pitch = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region AudioMixer
|
|
||||||
|
|
||||||
/// <summary>Tweens an AudioMixer's exposed float to the given value.
|
|
||||||
/// Also stores the AudioMixer as the tween's target so it can be used for filtered operations.
|
|
||||||
/// Note that you need to manually expose a float in an AudioMixerGroup in order to be able to tween it from an AudioMixer.</summary>
|
|
||||||
/// <param name="floatName">Name given to the exposed float to set</param>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOSetFloat(this AudioMixer target, string floatName, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<float, float, FloatOptions> t = DOTween.To(()=> {
|
|
||||||
float currVal;
|
|
||||||
target.GetFloat(floatName, out currVal);
|
|
||||||
return currVal;
|
|
||||||
}, x=> target.SetFloat(floatName, x), endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Operation Shortcuts
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Completes all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens completed
|
|
||||||
/// (meaning the tweens that don't have infinite loops and were not already complete)
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="withCallbacks">For Sequences only: if TRUE also internal Sequence callbacks will be fired,
|
|
||||||
/// otherwise they will be ignored</param>
|
|
||||||
public static int DOComplete(this AudioMixer target, bool withCallbacks = false)
|
|
||||||
{
|
|
||||||
return DOTween.Complete(target, withCallbacks);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Kills all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens killed.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="complete">If TRUE completes the tween before killing it</param>
|
|
||||||
public static int DOKill(this AudioMixer target, bool complete = false)
|
|
||||||
{
|
|
||||||
return DOTween.Kill(target, complete);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Flips the direction (backwards if it was going forward or viceversa) of all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens flipped.
|
|
||||||
/// </summary>
|
|
||||||
public static int DOFlip(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.Flip(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sends to the given position all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens involved.
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="to">Time position to reach
|
|
||||||
/// (if higher than the whole tween duration the tween will simply reach its end)</param>
|
|
||||||
/// <param name="andPlay">If TRUE will play the tween after reaching the given position, otherwise it will pause it</param>
|
|
||||||
public static int DOGoto(this AudioMixer target, float to, bool andPlay = false)
|
|
||||||
{
|
|
||||||
return DOTween.Goto(target, to, andPlay);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Pauses all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens paused.
|
|
||||||
/// </summary>
|
|
||||||
public static int DOPause(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.Pause(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Plays all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens played.
|
|
||||||
/// </summary>
|
|
||||||
public static int DOPlay(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.Play(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Plays backwards all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens played.
|
|
||||||
/// </summary>
|
|
||||||
public static int DOPlayBackwards(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.PlayBackwards(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Plays forward all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens played.
|
|
||||||
/// </summary>
|
|
||||||
public static int DOPlayForward(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.PlayForward(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Restarts all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens restarted.
|
|
||||||
/// </summary>
|
|
||||||
public static int DORestart(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.Restart(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Rewinds all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens rewinded.
|
|
||||||
/// </summary>
|
|
||||||
public static int DORewind(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.Rewind(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Smoothly rewinds all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens rewinded.
|
|
||||||
/// </summary>
|
|
||||||
public static int DOSmoothRewind(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.SmoothRewind(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Toggles the paused state (plays if it was paused, pauses if it was playing) of all tweens that have this target as a reference
|
|
||||||
/// (meaning tweens that were started from this target, or that had this target added as an Id)
|
|
||||||
/// and returns the total number of tweens involved.
|
|
||||||
/// </summary>
|
|
||||||
public static int DOTogglePause(this AudioMixer target)
|
|
||||||
{
|
|
||||||
return DOTween.TogglePause(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 4702391d9345d634681a92c11ea2ca42
|
|
||||||
@@ -1,146 +0,0 @@
|
|||||||
using UnityEngine;
|
|
||||||
|
|
||||||
#if false || EPO_DOTWEEN // MODULE_MARKER
|
|
||||||
|
|
||||||
using EPOOutline;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
using DG.Tweening;
|
|
||||||
using DG.Tweening.Core;
|
|
||||||
|
|
||||||
namespace DG.Tweening
|
|
||||||
{
|
|
||||||
public static class DOTweenModuleEPOOutline
|
|
||||||
{
|
|
||||||
public static int DOKill(this SerializedPass target, bool complete)
|
|
||||||
{
|
|
||||||
return DOTween.Kill(target, complete);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOFloat(this SerializedPass target, string propertyName, float endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.GetFloat(propertyName), x => target.SetFloat(propertyName, x), endValue, duration);
|
|
||||||
tweener.SetOptions(true).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this SerializedPass target, string propertyName, float endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.ToAlpha(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
|
|
||||||
tweener.SetOptions(true).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this SerializedPass target, string propertyName, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.GetColor(propertyName), x => target.SetColor(propertyName, x), endValue, duration);
|
|
||||||
tweener.SetOptions(false).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TweenerCore<Vector4, Vector4, VectorOptions> DOVector(this SerializedPass target, string propertyName, Vector4 endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.GetVector(propertyName), x => target.SetVector(propertyName, x), endValue, duration);
|
|
||||||
tweener.SetOptions(false).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOFloat(this SerializedPass target, int propertyId, float endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.GetFloat(propertyId), x => target.SetFloat(propertyId, x), endValue, duration);
|
|
||||||
tweener.SetOptions(true).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this SerializedPass target, int propertyId, float endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.ToAlpha(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
|
|
||||||
tweener.SetOptions(true).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this SerializedPass target, int propertyId, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.GetColor(propertyId), x => target.SetColor(propertyId, x), endValue, duration);
|
|
||||||
tweener.SetOptions(false).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TweenerCore<Vector4, Vector4, VectorOptions> DOVector(this SerializedPass target, int propertyId, Vector4 endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.GetVector(propertyId), x => target.SetVector(propertyId, x), endValue, duration);
|
|
||||||
tweener.SetOptions(false).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int DOKill(this Outlinable.OutlineProperties target, bool complete = false)
|
|
||||||
{
|
|
||||||
return DOTween.Kill(target, complete);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static int DOKill(this Outliner target, bool complete = false)
|
|
||||||
{
|
|
||||||
return DOTween.Kill(target, complete);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Controls the alpha (transparency) of the outline
|
|
||||||
/// </summary>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Outlinable.OutlineProperties target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.ToAlpha(() => target.Color, x => target.Color = x, endValue, duration);
|
|
||||||
tweener.SetOptions(true).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Controls the color of the outline
|
|
||||||
/// </summary>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Outlinable.OutlineProperties target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.Color, x => target.Color = x, endValue, duration);
|
|
||||||
tweener.SetOptions(false).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Controls the amount of blur applied to the outline
|
|
||||||
/// </summary>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOBlurShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
|
|
||||||
tweener.SetOptions(snapping).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Controls the amount of blur applied to the outline
|
|
||||||
/// </summary>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOBlurShift(this Outliner target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.BlurShift, x => target.BlurShift = x, endValue, duration);
|
|
||||||
tweener.SetOptions(snapping).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Controls the amount of dilation applied to the outline
|
|
||||||
/// </summary>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DODilateShift(this Outlinable.OutlineProperties target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
|
|
||||||
tweener.SetOptions(snapping).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Controls the amount of dilation applied to the outline
|
|
||||||
/// </summary>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DODilateShift(this Outliner target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
var tweener = DOTween.To(() => target.DilateShift, x => target.DilateShift = x, endValue, duration);
|
|
||||||
tweener.SetOptions(snapping).SetTarget(target);
|
|
||||||
return tweener;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 216b83d657d96d44487cfbf4354eb0b7
|
|
||||||
@@ -1,216 +0,0 @@
|
|||||||
// Author: Daniele Giardini - http://www.demigiant.com
|
|
||||||
// Created: 2018/07/13
|
|
||||||
|
|
||||||
#if true // MODULE_MARKER
|
|
||||||
using System;
|
|
||||||
using DG.Tweening.Core;
|
|
||||||
using DG.Tweening.Core.Enums;
|
|
||||||
using DG.Tweening.Plugins;
|
|
||||||
using DG.Tweening.Plugins.Core.PathCore;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
#pragma warning disable 1591
|
|
||||||
namespace DG.Tweening
|
|
||||||
{
|
|
||||||
public static class DOTweenModulePhysics
|
|
||||||
{
|
|
||||||
#region Shortcuts
|
|
||||||
|
|
||||||
#region Rigidbody
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody's position to the given value.
|
|
||||||
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMove(this Rigidbody target, Vector3 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody's X position to the given value.
|
|
||||||
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveX(this Rigidbody target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue, 0, 0), duration);
|
|
||||||
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody's Y position to the given value.
|
|
||||||
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveY(this Rigidbody target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, endValue, 0), duration);
|
|
||||||
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody's Z position to the given value.
|
|
||||||
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOMoveZ(this Rigidbody target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue), duration);
|
|
||||||
t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody's rotation to the given value.
|
|
||||||
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="mode">Rotation mode</param>
|
|
||||||
public static TweenerCore<Quaternion, Vector3, QuaternionOptions> DORotate(this Rigidbody target, Vector3 endValue, float duration, RotateMode mode = RotateMode.Fast)
|
|
||||||
{
|
|
||||||
TweenerCore<Quaternion, Vector3, QuaternionOptions> t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
t.plugOptions.rotateMode = mode;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody's rotation so that it will look towards the given position.
|
|
||||||
/// Also stores the rigidbody as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="towards">The position to look at</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="axisConstraint">Eventual axis constraint for the rotation</param>
|
|
||||||
/// <param name="up">The vector that defines in which direction up is (default: Vector3.up)</param>
|
|
||||||
public static TweenerCore<Quaternion, Vector3, QuaternionOptions> DOLookAt(this Rigidbody target, Vector3 towards, float duration, AxisConstraint axisConstraint = AxisConstraint.None, Vector3? up = null)
|
|
||||||
{
|
|
||||||
TweenerCore<Quaternion, Vector3, QuaternionOptions> t = DOTween.To(() => target.rotation, target.MoveRotation, towards, duration)
|
|
||||||
.SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetLookAt);
|
|
||||||
t.plugOptions.axisConstraint = axisConstraint;
|
|
||||||
t.plugOptions.up = (up == null) ? Vector3.up : (Vector3)up;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Special
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody's position to the given value, while also applying a jump effect along the Y axis.
|
|
||||||
/// Returns a Sequence instead of a Tweener.
|
|
||||||
/// Also stores the Rigidbody as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param>
|
|
||||||
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
|
||||||
/// <param name="numJumps">Total number of jumps</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static Sequence DOJump(this Rigidbody target, Vector3 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
if (numJumps < 1) numJumps = 1;
|
|
||||||
float startPosY = 0;
|
|
||||||
float offsetY = -1;
|
|
||||||
bool offsetYSet = false;
|
|
||||||
Sequence s = DOTween.Sequence();
|
|
||||||
Tween yTween = DOTween.To(() => target.position, target.MovePosition, new Vector3(0, jumpPower, 0), duration / (numJumps * 2))
|
|
||||||
.SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
|
|
||||||
.SetLoops(numJumps * 2, LoopType.Yoyo)
|
|
||||||
.OnStart(() => startPosY = target.position.y);
|
|
||||||
s.Append(DOTween.To(() => target.position, target.MovePosition, new Vector3(endValue.x, 0, 0), duration)
|
|
||||||
.SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
|
|
||||||
).Join(DOTween.To(() => target.position, target.MovePosition, new Vector3(0, 0, endValue.z), duration)
|
|
||||||
.SetOptions(AxisConstraint.Z, snapping).SetEase(Ease.Linear)
|
|
||||||
).Join(yTween)
|
|
||||||
.SetTarget(target).SetEase(DOTween.defaultEaseType);
|
|
||||||
yTween.OnUpdate(() => {
|
|
||||||
if (!offsetYSet) {
|
|
||||||
offsetYSet = true;
|
|
||||||
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
|
|
||||||
}
|
|
||||||
Vector3 pos = target.position;
|
|
||||||
pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
|
|
||||||
target.MovePosition(pos);
|
|
||||||
});
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody's position through the given path waypoints, using the chosen path algorithm.
|
|
||||||
/// Also stores the Rigidbody as the tween's target so it can be used for filtered operations.
|
|
||||||
/// <para>NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.</para>
|
|
||||||
/// <para>BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
|
|
||||||
/// If you plan to publish there you should use a regular transform.DOPath.</para></summary>
|
|
||||||
/// <param name="path">The waypoints to go through</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
|
||||||
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
|
||||||
/// <param name="resolution">The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
|
|
||||||
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints</param>
|
|
||||||
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
|
||||||
public static TweenerCore<Vector3, Path, PathOptions> DOPath(
|
|
||||||
this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
|
|
||||||
PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (resolution < 1) resolution = 1;
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, new Path(pathType, path, resolution, gizmoColor), duration)
|
|
||||||
.SetTarget(target).SetUpdate(UpdateType.Fixed);
|
|
||||||
|
|
||||||
t.plugOptions.isRigidbody = true;
|
|
||||||
t.plugOptions.mode = pathMode;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a Rigidbody's localPosition through the given path waypoints, using the chosen path algorithm.
|
|
||||||
/// Also stores the Rigidbody as the tween's target so it can be used for filtered operations
|
|
||||||
/// <para>NOTE: to tween a rigidbody correctly it should be set to kinematic at least while being tweened.</para>
|
|
||||||
/// <para>BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
|
|
||||||
/// If you plan to publish there you should use a regular transform.DOLocalPath.</para></summary>
|
|
||||||
/// <param name="path">The waypoint to go through</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
|
||||||
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
|
||||||
/// <param name="resolution">The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
|
|
||||||
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints</param>
|
|
||||||
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
|
||||||
public static TweenerCore<Vector3, Path, PathOptions> DOLocalPath(
|
|
||||||
this Rigidbody target, Vector3[] path, float duration, PathType pathType = PathType.Linear,
|
|
||||||
PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (resolution < 1) resolution = 1;
|
|
||||||
Transform trans = target.transform;
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path, resolution, gizmoColor), duration)
|
|
||||||
.SetTarget(target).SetUpdate(UpdateType.Fixed);
|
|
||||||
|
|
||||||
t.plugOptions.isRigidbody = true;
|
|
||||||
t.plugOptions.mode = pathMode;
|
|
||||||
t.plugOptions.useLocalPosition = true;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
// Used by path editor when creating the actual tween, so it can pass a pre-compiled path
|
|
||||||
internal static TweenerCore<Vector3, Path, PathOptions> DOPath(
|
|
||||||
this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
|
|
||||||
)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => target.position, target.MovePosition, path, duration)
|
|
||||||
.SetTarget(target);
|
|
||||||
|
|
||||||
t.plugOptions.isRigidbody = true;
|
|
||||||
t.plugOptions.mode = pathMode;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
internal static TweenerCore<Vector3, Path, PathOptions> DOLocalPath(
|
|
||||||
this Rigidbody target, Path path, float duration, PathMode pathMode = PathMode.Full3D
|
|
||||||
)
|
|
||||||
{
|
|
||||||
Transform trans = target.transform;
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
|
|
||||||
.SetTarget(target);
|
|
||||||
|
|
||||||
t.plugOptions.isRigidbody = true;
|
|
||||||
t.plugOptions.mode = pathMode;
|
|
||||||
t.plugOptions.useLocalPosition = true;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 7fbfab74b660bc54aa30fcfedeffea6d
|
|
||||||
@@ -1,193 +0,0 @@
|
|||||||
// Author: Daniele Giardini - http://www.demigiant.com
|
|
||||||
// Created: 2018/07/13
|
|
||||||
|
|
||||||
#if true // MODULE_MARKER
|
|
||||||
using System;
|
|
||||||
using DG.Tweening.Core;
|
|
||||||
using DG.Tweening.Plugins;
|
|
||||||
using DG.Tweening.Plugins.Core.PathCore;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
using UnityEngine;
|
|
||||||
|
|
||||||
#pragma warning disable 1591
|
|
||||||
namespace DG.Tweening
|
|
||||||
{
|
|
||||||
public static class DOTweenModulePhysics2D
|
|
||||||
{
|
|
||||||
#region Shortcuts
|
|
||||||
|
|
||||||
#region Rigidbody2D Shortcuts
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody2D's position to the given value.
|
|
||||||
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMove(this Rigidbody2D target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody2D's X position to the given value.
|
|
||||||
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMoveX(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector2(endValue, 0), duration);
|
|
||||||
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody2D's Y position to the given value.
|
|
||||||
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMoveY(this Rigidbody2D target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.position, target.MovePosition, new Vector2(0, endValue), duration);
|
|
||||||
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody2D's rotation to the given value.
|
|
||||||
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DORotate(this Rigidbody2D target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.rotation, target.MoveRotation, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Special
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody2D's position to the given value, while also applying a jump effect along the Y axis.
|
|
||||||
/// Returns a Sequence instead of a Tweener.
|
|
||||||
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
|
|
||||||
/// <para>IMPORTANT: a rigidbody2D can't be animated in a jump arc using MovePosition, so the tween will directly set the position</para></summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param>
|
|
||||||
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
|
||||||
/// <param name="numJumps">Total number of jumps</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static Sequence DOJump(this Rigidbody2D target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
if (numJumps < 1) numJumps = 1;
|
|
||||||
float startPosY = 0;
|
|
||||||
float offsetY = -1;
|
|
||||||
bool offsetYSet = false;
|
|
||||||
Sequence s = DOTween.Sequence();
|
|
||||||
Tween yTween = DOTween.To(() => target.position, x => target.position = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
|
|
||||||
.SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
|
|
||||||
.SetLoops(numJumps * 2, LoopType.Yoyo)
|
|
||||||
.OnStart(() => startPosY = target.position.y);
|
|
||||||
s.Append(DOTween.To(() => target.position, x => target.position = x, new Vector2(endValue.x, 0), duration)
|
|
||||||
.SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
|
|
||||||
).Join(yTween)
|
|
||||||
.SetTarget(target).SetEase(DOTween.defaultEaseType);
|
|
||||||
yTween.OnUpdate(() => {
|
|
||||||
if (!offsetYSet) {
|
|
||||||
offsetYSet = true;
|
|
||||||
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
|
|
||||||
}
|
|
||||||
Vector3 pos = target.position;
|
|
||||||
pos.y += DOVirtual.EasedValue(0, offsetY, yTween.ElapsedPercentage(), Ease.OutQuad);
|
|
||||||
target.MovePosition(pos);
|
|
||||||
});
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Rigidbody2D's position through the given path waypoints, using the chosen path algorithm.
|
|
||||||
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations.
|
|
||||||
/// <para>NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.</para>
|
|
||||||
/// <para>BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
|
|
||||||
/// If you plan to publish there you should use a regular transform.DOPath.</para></summary>
|
|
||||||
/// <param name="path">The waypoints to go through</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
|
||||||
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
|
||||||
/// <param name="resolution">The resolution of the path (useless in case of Linear paths): higher resolutions make for more detailed curved paths but are more expensive.
|
|
||||||
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints</param>
|
|
||||||
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
|
||||||
public static TweenerCore<Vector3, Path, PathOptions> DOPath(
|
|
||||||
this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
|
|
||||||
PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (resolution < 1) resolution = 1;
|
|
||||||
int len = path.Length;
|
|
||||||
Vector3[] path3D = new Vector3[len];
|
|
||||||
for (int i = 0; i < len; ++i) path3D[i] = path[i];
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), new Path(pathType, path3D, resolution, gizmoColor), duration)
|
|
||||||
.SetTarget(target).SetUpdate(UpdateType.Fixed);
|
|
||||||
|
|
||||||
t.plugOptions.isRigidbody2D = true;
|
|
||||||
t.plugOptions.mode = pathMode;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a Rigidbody2D's localPosition through the given path waypoints, using the chosen path algorithm.
|
|
||||||
/// Also stores the Rigidbody2D as the tween's target so it can be used for filtered operations
|
|
||||||
/// <para>NOTE: to tween a Rigidbody2D correctly it should be set to kinematic at least while being tweened.</para>
|
|
||||||
/// <para>BEWARE: doesn't work on Windows Phone store (waiting for Unity to fix their own bug).
|
|
||||||
/// If you plan to publish there you should use a regular transform.DOLocalPath.</para></summary>
|
|
||||||
/// <param name="path">The waypoint to go through</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="pathType">The type of path: Linear (straight path), CatmullRom (curved CatmullRom path) or CubicBezier (curved with control points)</param>
|
|
||||||
/// <param name="pathMode">The path mode: 3D, side-scroller 2D, top-down 2D</param>
|
|
||||||
/// <param name="resolution">The resolution of the path: higher resolutions make for more detailed curved paths but are more expensive.
|
|
||||||
/// Defaults to 10, but a value of 5 is usually enough if you don't have dramatic long curves between waypoints</param>
|
|
||||||
/// <param name="gizmoColor">The color of the path (shown when gizmos are active in the Play panel and the tween is running)</param>
|
|
||||||
public static TweenerCore<Vector3, Path, PathOptions> DOLocalPath(
|
|
||||||
this Rigidbody2D target, Vector2[] path, float duration, PathType pathType = PathType.Linear,
|
|
||||||
PathMode pathMode = PathMode.Full3D, int resolution = 10, Color? gizmoColor = null
|
|
||||||
)
|
|
||||||
{
|
|
||||||
if (resolution < 1) resolution = 1;
|
|
||||||
int len = path.Length;
|
|
||||||
Vector3[] path3D = new Vector3[len];
|
|
||||||
for (int i = 0; i < len; ++i) path3D[i] = path[i];
|
|
||||||
Transform trans = target.transform;
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), new Path(pathType, path3D, resolution, gizmoColor), duration)
|
|
||||||
.SetTarget(target).SetUpdate(UpdateType.Fixed);
|
|
||||||
|
|
||||||
t.plugOptions.isRigidbody2D = true;
|
|
||||||
t.plugOptions.mode = pathMode;
|
|
||||||
t.plugOptions.useLocalPosition = true;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
// Used by path editor when creating the actual tween, so it can pass a pre-compiled path
|
|
||||||
internal static TweenerCore<Vector3, Path, PathOptions> DOPath(
|
|
||||||
this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
|
|
||||||
)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => target.position, x => target.MovePosition(x), path, duration)
|
|
||||||
.SetTarget(target);
|
|
||||||
|
|
||||||
t.plugOptions.isRigidbody2D = true;
|
|
||||||
t.plugOptions.mode = pathMode;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
internal static TweenerCore<Vector3, Path, PathOptions> DOLocalPath(
|
|
||||||
this Rigidbody2D target, Path path, float duration, PathMode pathMode = PathMode.Full3D
|
|
||||||
)
|
|
||||||
{
|
|
||||||
Transform trans = target.transform;
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = DOTween.To(PathPlugin.Get(), () => trans.localPosition, x => target.MovePosition(trans.parent == null ? x : trans.parent.TransformPoint(x)), path, duration)
|
|
||||||
.SetTarget(target);
|
|
||||||
|
|
||||||
t.plugOptions.isRigidbody2D = true;
|
|
||||||
t.plugOptions.mode = pathMode;
|
|
||||||
t.plugOptions.useLocalPosition = true;
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: eea29b5b6af205e4ba70a656a6fbd3df
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
// Author: Daniele Giardini - http://www.demigiant.com
|
|
||||||
// Created: 2018/07/13
|
|
||||||
|
|
||||||
#if true // MODULE_MARKER
|
|
||||||
using System;
|
|
||||||
using UnityEngine;
|
|
||||||
using DG.Tweening.Core;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
|
|
||||||
#pragma warning disable 1591
|
|
||||||
namespace DG.Tweening
|
|
||||||
{
|
|
||||||
public static class DOTweenModuleSprite
|
|
||||||
{
|
|
||||||
#region Shortcuts
|
|
||||||
|
|
||||||
#region SpriteRenderer
|
|
||||||
|
|
||||||
/// <summary>Tweens a SpriteRenderer's color to the given value.
|
|
||||||
/// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this SpriteRenderer target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Material's alpha color to the given value.
|
|
||||||
/// Also stores the spriteRenderer as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this SpriteRenderer target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a SpriteRenderer's color using the given gradient
|
|
||||||
/// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static Sequence DOGradientColor(this SpriteRenderer target, Gradient gradient, float duration)
|
|
||||||
{
|
|
||||||
Sequence s = DOTween.Sequence();
|
|
||||||
GradientColorKey[] colors = gradient.colorKeys;
|
|
||||||
int len = colors.Length;
|
|
||||||
for (int i = 0; i < len; ++i) {
|
|
||||||
GradientColorKey c = colors[i];
|
|
||||||
if (i == 0 && c.time <= 0) {
|
|
||||||
target.color = c.color;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
float colorDuration = i == len - 1
|
|
||||||
? duration - s.Duration(false) // Verifies that total duration is correct
|
|
||||||
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
|
|
||||||
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
|
|
||||||
}
|
|
||||||
s.SetTarget(target);
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Blendables
|
|
||||||
|
|
||||||
#region SpriteRenderer
|
|
||||||
|
|
||||||
/// <summary>Tweens a SpriteRenderer's color to the given value,
|
|
||||||
/// in a way that allows other DOBlendableColor tweens to work together on the same target,
|
|
||||||
/// instead than fight each other as multiple DOColor would do.
|
|
||||||
/// Also stores the SpriteRenderer as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static Tweener DOBlendableColor(this SpriteRenderer target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
endValue = endValue - target.color;
|
|
||||||
Color to = new Color(0, 0, 0, 0);
|
|
||||||
return DOTween.To(() => to, x => {
|
|
||||||
Color diff = x - to;
|
|
||||||
to = x;
|
|
||||||
target.color += diff;
|
|
||||||
}, endValue, duration)
|
|
||||||
.Blendable().SetTarget(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c4f6bf0d0071f80429b63a9ac8c664bb
|
|
||||||
@@ -1,662 +0,0 @@
|
|||||||
// Author: Daniele Giardini - http://www.demigiant.com
|
|
||||||
// Created: 2018/07/13
|
|
||||||
|
|
||||||
#if true // MODULE_MARKER
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Globalization;
|
|
||||||
using UnityEngine;
|
|
||||||
using UnityEngine.UI;
|
|
||||||
using DG.Tweening.Core;
|
|
||||||
using DG.Tweening.Core.Enums;
|
|
||||||
using DG.Tweening.Plugins;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
using Outline = UnityEngine.UI.Outline;
|
|
||||||
using Text = UnityEngine.UI.Text;
|
|
||||||
|
|
||||||
#pragma warning disable 1591
|
|
||||||
namespace DG.Tweening
|
|
||||||
{
|
|
||||||
public static class DOTweenModuleUI
|
|
||||||
{
|
|
||||||
#region Shortcuts
|
|
||||||
|
|
||||||
#region CanvasGroup
|
|
||||||
|
|
||||||
/// <summary>Tweens a CanvasGroup's alpha color to the given value.
|
|
||||||
/// Also stores the canvasGroup as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOFade(this CanvasGroup target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.alpha, x => target.alpha = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Graphic
|
|
||||||
|
|
||||||
/// <summary>Tweens an Graphic's color to the given value.
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Graphic target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens an Graphic's alpha color to the given value.
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Graphic target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Image
|
|
||||||
|
|
||||||
/// <summary>Tweens an Image's color to the given value.
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Image target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens an Image's alpha color to the given value.
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Image target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens an Image's fillAmount to the given value.
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach (0 to 1)</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOFillAmount(this Image target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
if (endValue > 1) endValue = 1;
|
|
||||||
else if (endValue < 0) endValue = 0;
|
|
||||||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.fillAmount, x => target.fillAmount = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens an Image's colors using the given gradient
|
|
||||||
/// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static Sequence DOGradientColor(this Image target, Gradient gradient, float duration)
|
|
||||||
{
|
|
||||||
Sequence s = DOTween.Sequence();
|
|
||||||
GradientColorKey[] colors = gradient.colorKeys;
|
|
||||||
int len = colors.Length;
|
|
||||||
for (int i = 0; i < len; ++i) {
|
|
||||||
GradientColorKey c = colors[i];
|
|
||||||
if (i == 0 && c.time <= 0) {
|
|
||||||
target.color = c.color;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
float colorDuration = i == len - 1
|
|
||||||
? duration - s.Duration(false) // Verifies that total duration is correct
|
|
||||||
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
|
|
||||||
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
|
|
||||||
}
|
|
||||||
s.SetTarget(target);
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region LayoutElement
|
|
||||||
|
|
||||||
/// <summary>Tweens an LayoutElement's flexibleWidth/Height to the given value.
|
|
||||||
/// Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOFlexibleSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.flexibleWidth, target.flexibleHeight), x => {
|
|
||||||
target.flexibleWidth = x.x;
|
|
||||||
target.flexibleHeight = x.y;
|
|
||||||
}, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens an LayoutElement's minWidth/Height to the given value.
|
|
||||||
/// Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOMinSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.minWidth, target.minHeight), x => {
|
|
||||||
target.minWidth = x.x;
|
|
||||||
target.minHeight = x.y;
|
|
||||||
}, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens an LayoutElement's preferredWidth/Height to the given value.
|
|
||||||
/// Also stores the LayoutElement as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPreferredSize(this LayoutElement target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => new Vector2(target.preferredWidth, target.preferredHeight), x => {
|
|
||||||
target.preferredWidth = x.x;
|
|
||||||
target.preferredHeight = x.y;
|
|
||||||
}, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Outline
|
|
||||||
|
|
||||||
/// <summary>Tweens a Outline's effectColor to the given value.
|
|
||||||
/// Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Outline target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.effectColor, x => target.effectColor = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Outline's effectColor alpha to the given value.
|
|
||||||
/// Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Outline target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.effectColor, x => target.effectColor = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Outline's effectDistance to the given value.
|
|
||||||
/// Also stores the Outline as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOScale(this Outline target, Vector2 endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.effectDistance, x => target.effectDistance = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region RectTransform
|
|
||||||
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPos(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition X to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPosX(this RectTransform target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue, 0), duration);
|
|
||||||
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition Y to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorPosY(this RectTransform target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, endValue), duration);
|
|
||||||
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition3D to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3D(this RectTransform target, Vector3 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition3D X to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DX(this RectTransform target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(endValue, 0, 0), duration);
|
|
||||||
t.SetOptions(AxisConstraint.X, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition3D Y to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DY(this RectTransform target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, endValue, 0), duration);
|
|
||||||
t.SetOptions(AxisConstraint.Y, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition3D Z to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector3, Vector3, VectorOptions> DOAnchorPos3DZ(this RectTransform target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector3, Vector3, VectorOptions> t = DOTween.To(() => target.anchoredPosition3D, x => target.anchoredPosition3D = x, new Vector3(0, 0, endValue), duration);
|
|
||||||
t.SetOptions(AxisConstraint.Z, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a RectTransform's anchorMax to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorMax(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchorMax, x => target.anchorMax = x, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a RectTransform's anchorMin to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOAnchorMin(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.anchorMin, x => target.anchorMin = x, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a RectTransform's pivot to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivot(this RectTransform target, Vector2 endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a RectTransform's pivot X to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivotX(this RectTransform target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(endValue, 0), duration);
|
|
||||||
t.SetOptions(AxisConstraint.X).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a RectTransform's pivot Y to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOPivotY(this RectTransform target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.pivot, x => target.pivot = x, new Vector2(0, endValue), duration);
|
|
||||||
t.SetOptions(AxisConstraint.Y).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a RectTransform's sizeDelta to the given value.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOSizeDelta(this RectTransform target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.sizeDelta, x => target.sizeDelta = x, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Punches a RectTransform's anchoredPosition towards the given direction and then back to the starting one
|
|
||||||
/// as if it was connected to the starting position via an elastic.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="punch">The direction and strength of the punch (added to the RectTransform's current position)</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="vibrato">Indicates how much will the punch vibrate</param>
|
|
||||||
/// <param name="elasticity">Represents how much (0 to 1) the vector will go beyond the starting position when bouncing backwards.
|
|
||||||
/// 1 creates a full oscillation between the punch direction and the opposite direction,
|
|
||||||
/// while 0 oscillates only between the punch and the start position</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static Tweener DOPunchAnchorPos(this RectTransform target, Vector2 punch, float duration, int vibrato = 10, float elasticity = 1, bool snapping = false)
|
|
||||||
{
|
|
||||||
return DOTween.Punch(() => target.anchoredPosition, x => target.anchoredPosition = x, punch, duration, vibrato, elasticity)
|
|
||||||
.SetTarget(target).SetOptions(snapping);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Shakes a RectTransform's anchoredPosition with the given values.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="strength">The shake strength</param>
|
|
||||||
/// <param name="vibrato">Indicates how much will the shake vibrate</param>
|
|
||||||
/// <param name="randomness">Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
|
|
||||||
/// Setting it to 0 will shake along a single direction.</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
/// <param name="fadeOut">If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not</param>
|
|
||||||
/// <param name="randomnessMode">Randomness mode</param>
|
|
||||||
public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, float strength = 100, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full)
|
|
||||||
{
|
|
||||||
return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, true, fadeOut, randomnessMode)
|
|
||||||
.SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping);
|
|
||||||
}
|
|
||||||
/// <summary>Shakes a RectTransform's anchoredPosition with the given values.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="strength">The shake strength on each axis</param>
|
|
||||||
/// <param name="vibrato">Indicates how much will the shake vibrate</param>
|
|
||||||
/// <param name="randomness">Indicates how much the shake will be random (0 to 180 - values higher than 90 kind of suck, so beware).
|
|
||||||
/// Setting it to 0 will shake along a single direction.</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
/// <param name="fadeOut">If TRUE the shake will automatically fadeOut smoothly within the tween's duration, otherwise it will not</param>
|
|
||||||
/// <param name="randomnessMode">Randomness mode</param>
|
|
||||||
public static Tweener DOShakeAnchorPos(this RectTransform target, float duration, Vector2 strength, int vibrato = 10, float randomness = 90, bool snapping = false, bool fadeOut = true, ShakeRandomnessMode randomnessMode = ShakeRandomnessMode.Full)
|
|
||||||
{
|
|
||||||
return DOTween.Shake(() => target.anchoredPosition, x => target.anchoredPosition = x, duration, strength, vibrato, randomness, fadeOut, randomnessMode)
|
|
||||||
.SetTarget(target).SetSpecialStartupMode(SpecialStartupMode.SetShake).SetOptions(snapping);
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Special
|
|
||||||
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition to the given value, while also applying a jump effect along the Y axis.
|
|
||||||
/// Returns a Sequence instead of a Tweener.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param>
|
|
||||||
/// <param name="jumpPower">Power of the jump (the max height of the jump is represented by this plus the final Y offset)</param>
|
|
||||||
/// <param name="numJumps">Total number of jumps</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static Sequence DOJumpAnchorPos(this RectTransform target, Vector2 endValue, float jumpPower, int numJumps, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
if (numJumps < 1) numJumps = 1;
|
|
||||||
float startPosY = 0;
|
|
||||||
float offsetY = -1;
|
|
||||||
bool offsetYSet = false;
|
|
||||||
|
|
||||||
// Separate Y Tween so we can elaborate elapsedPercentage on that insted of on the Sequence
|
|
||||||
// (in case users add a delay or other elements to the Sequence)
|
|
||||||
Sequence s = DOTween.Sequence();
|
|
||||||
Tween yTween = DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(0, jumpPower), duration / (numJumps * 2))
|
|
||||||
.SetOptions(AxisConstraint.Y, snapping).SetEase(Ease.OutQuad).SetRelative()
|
|
||||||
.SetLoops(numJumps * 2, LoopType.Yoyo)
|
|
||||||
.OnStart(()=> startPosY = target.anchoredPosition.y);
|
|
||||||
s.Append(DOTween.To(() => target.anchoredPosition, x => target.anchoredPosition = x, new Vector2(endValue.x, 0), duration)
|
|
||||||
.SetOptions(AxisConstraint.X, snapping).SetEase(Ease.Linear)
|
|
||||||
).Join(yTween)
|
|
||||||
.SetTarget(target).SetEase(DOTween.defaultEaseType);
|
|
||||||
s.OnUpdate(() => {
|
|
||||||
if (!offsetYSet) {
|
|
||||||
offsetYSet = true;
|
|
||||||
offsetY = s.isRelative ? endValue.y : endValue.y - startPosY;
|
|
||||||
}
|
|
||||||
Vector2 pos = target.anchoredPosition;
|
|
||||||
pos.y += DOVirtual.EasedValue(0, offsetY, s.ElapsedDirectionalPercentage(), Ease.OutQuad);
|
|
||||||
target.anchoredPosition = pos;
|
|
||||||
});
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region ScrollRect
|
|
||||||
|
|
||||||
/// <summary>Tweens a ScrollRect's horizontal/verticalNormalizedPosition to the given value.
|
|
||||||
/// Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static Tweener DONormalizedPos(this ScrollRect target, Vector2 endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
return DOTween.To(() => new Vector2(target.horizontalNormalizedPosition, target.verticalNormalizedPosition),
|
|
||||||
x => {
|
|
||||||
target.horizontalNormalizedPosition = x.x;
|
|
||||||
target.verticalNormalizedPosition = x.y;
|
|
||||||
}, endValue, duration)
|
|
||||||
.SetOptions(snapping).SetTarget(target);
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a ScrollRect's horizontalNormalizedPosition to the given value.
|
|
||||||
/// Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static Tweener DOHorizontalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
return DOTween.To(() => target.horizontalNormalizedPosition, x => target.horizontalNormalizedPosition = x, endValue, duration)
|
|
||||||
.SetOptions(snapping).SetTarget(target);
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a ScrollRect's verticalNormalizedPosition to the given value.
|
|
||||||
/// Also stores the ScrollRect as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static Tweener DOVerticalNormalizedPos(this ScrollRect target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
return DOTween.To(() => target.verticalNormalizedPosition, x => target.verticalNormalizedPosition = x, endValue, duration)
|
|
||||||
.SetOptions(snapping).SetTarget(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Slider
|
|
||||||
|
|
||||||
/// <summary>Tweens a Slider's value to the given value.
|
|
||||||
/// Also stores the Slider as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<float, float, FloatOptions> DOValue(this Slider target, float endValue, float duration, bool snapping = false)
|
|
||||||
{
|
|
||||||
TweenerCore<float, float, FloatOptions> t = DOTween.To(() => target.value, x => target.value = x, endValue, duration);
|
|
||||||
t.SetOptions(snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Text
|
|
||||||
|
|
||||||
/// <summary>Tweens a Text's color to the given value.
|
|
||||||
/// Also stores the Text as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOColor(this Text target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.To(() => target.color, x => target.color = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Tweens a Text's text from one integer to another, with options for thousands separators
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="fromValue">The value to start from</param>
|
|
||||||
/// <param name="endValue">The end value to reach</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="addThousandsSeparator">If TRUE (default) also adds thousands separators</param>
|
|
||||||
/// <param name="culture">The <see cref="CultureInfo"/> to use (InvariantCulture if NULL)</param>
|
|
||||||
public static TweenerCore<int, int, NoOptions> DOCounter(
|
|
||||||
this Text target, int fromValue, int endValue, float duration, bool addThousandsSeparator = true, CultureInfo culture = null
|
|
||||||
){
|
|
||||||
int v = fromValue;
|
|
||||||
CultureInfo cInfo = !addThousandsSeparator ? null : culture ?? CultureInfo.InvariantCulture;
|
|
||||||
TweenerCore<int, int, NoOptions> t = DOTween.To(() => v, x => {
|
|
||||||
v = x;
|
|
||||||
target.text = addThousandsSeparator
|
|
||||||
? v.ToString("N0", cInfo)
|
|
||||||
: v.ToString();
|
|
||||||
}, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Text's alpha color to the given value.
|
|
||||||
/// Also stores the Text as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Color, Color, ColorOptions> DOFade(this Text target, float endValue, float duration)
|
|
||||||
{
|
|
||||||
TweenerCore<Color, Color, ColorOptions> t = DOTween.ToAlpha(() => target.color, x => target.color = x, endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Text's text to the given value.
|
|
||||||
/// Also stores the Text as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end string to tween to</param><param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="richTextEnabled">If TRUE (default), rich text will be interpreted correctly while animated,
|
|
||||||
/// otherwise all tags will be considered as normal text</param>
|
|
||||||
/// <param name="scrambleMode">The type of scramble mode to use, if any</param>
|
|
||||||
/// <param name="scrambleChars">A string containing the characters to use for scrambling.
|
|
||||||
/// Use as many characters as possible (minimum 10) because DOTween uses a fast scramble mode which gives better results with more characters.
|
|
||||||
/// Leave it to NULL (default) to use default ones</param>
|
|
||||||
public static TweenerCore<string, string, StringOptions> DOText(this Text target, string endValue, float duration, bool richTextEnabled = true, ScrambleMode scrambleMode = ScrambleMode.None, string scrambleChars = null)
|
|
||||||
{
|
|
||||||
if (endValue == null) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogWarning("You can't pass a NULL string to DOText: an empty string will be used instead to avoid errors");
|
|
||||||
endValue = "";
|
|
||||||
}
|
|
||||||
TweenerCore<string, string, StringOptions> t = DOTween.To(() => target.text, x => target.text = x, endValue, duration);
|
|
||||||
t.SetOptions(richTextEnabled, scrambleMode, scrambleChars)
|
|
||||||
.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Blendables
|
|
||||||
|
|
||||||
#region Graphic
|
|
||||||
|
|
||||||
/// <summary>Tweens a Graphic's color to the given value,
|
|
||||||
/// in a way that allows other DOBlendableColor tweens to work together on the same target,
|
|
||||||
/// instead than fight each other as multiple DOColor would do.
|
|
||||||
/// Also stores the Graphic as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static Tweener DOBlendableColor(this Graphic target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
endValue = endValue - target.color;
|
|
||||||
Color to = new Color(0, 0, 0, 0);
|
|
||||||
return DOTween.To(() => to, x => {
|
|
||||||
Color diff = x - to;
|
|
||||||
to = x;
|
|
||||||
target.color += diff;
|
|
||||||
}, endValue, duration)
|
|
||||||
.Blendable().SetTarget(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Image
|
|
||||||
|
|
||||||
/// <summary>Tweens a Image's color to the given value,
|
|
||||||
/// in a way that allows other DOBlendableColor tweens to work together on the same target,
|
|
||||||
/// instead than fight each other as multiple DOColor would do.
|
|
||||||
/// Also stores the Image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static Tweener DOBlendableColor(this Image target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
endValue = endValue - target.color;
|
|
||||||
Color to = new Color(0, 0, 0, 0);
|
|
||||||
return DOTween.To(() => to, x => {
|
|
||||||
Color diff = x - to;
|
|
||||||
to = x;
|
|
||||||
target.color += diff;
|
|
||||||
}, endValue, duration)
|
|
||||||
.Blendable().SetTarget(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Text
|
|
||||||
|
|
||||||
/// <summary>Tweens a Text's color BY the given value,
|
|
||||||
/// in a way that allows other DOBlendableColor tweens to work together on the same target,
|
|
||||||
/// instead than fight each other as multiple DOColor would do.
|
|
||||||
/// Also stores the Text as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The value to tween to</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static Tweener DOBlendableColor(this Text target, Color endValue, float duration)
|
|
||||||
{
|
|
||||||
endValue = endValue - target.color;
|
|
||||||
Color to = new Color(0, 0, 0, 0);
|
|
||||||
return DOTween.To(() => to, x => {
|
|
||||||
Color diff = x - to;
|
|
||||||
to = x;
|
|
||||||
target.color += diff;
|
|
||||||
}, endValue, duration)
|
|
||||||
.Blendable().SetTarget(target);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Shapes
|
|
||||||
|
|
||||||
/// <summary>Tweens a RectTransform's anchoredPosition so that it draws a circle around the given center.
|
|
||||||
/// Also stores the RectTransform as the tween's target so it can be used for filtered operations.<para/>
|
|
||||||
/// IMPORTANT: SetFrom(value) requires a <see cref="Vector2"/> instead of a float, where the X property represents the "from degrees value"</summary>
|
|
||||||
/// <param name="center">Circle-center/pivot around which to rotate (in UI anchoredPosition coordinates)</param>
|
|
||||||
/// <param name="endValueDegrees">The end value degrees to reach (to rotate counter-clockwise pass a negative value)</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
/// <param name="relativeCenter">If TRUE the <see cref="center"/> coordinates will be considered as relative to the target's current anchoredPosition</param>
|
|
||||||
/// <param name="snapping">If TRUE the tween will smoothly snap all values to integers</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, CircleOptions> DOShapeCircle(
|
|
||||||
this RectTransform target, Vector2 center, float endValueDegrees, float duration, bool relativeCenter = false, bool snapping = false
|
|
||||||
)
|
|
||||||
{
|
|
||||||
TweenerCore<Vector2, Vector2, CircleOptions> t = DOTween.To(
|
|
||||||
CirclePlugin.Get(), () => target.anchoredPosition, x => target.anchoredPosition = x, center, duration
|
|
||||||
);
|
|
||||||
t.SetOptions(endValueDegrees, relativeCenter, snapping).SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
// ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
public static class Utils
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Converts the anchoredPosition of the first RectTransform to the second RectTransform,
|
|
||||||
/// taking into consideration offset, anchors and pivot, and returns the new anchoredPosition
|
|
||||||
/// </summary>
|
|
||||||
public static Vector2 SwitchToRectTransform(RectTransform from, RectTransform to)
|
|
||||||
{
|
|
||||||
Vector2 localPoint;
|
|
||||||
Vector2 fromPivotDerivedOffset = new Vector2(from.rect.width * 0.5f + from.rect.xMin, from.rect.height * 0.5f + from.rect.yMin);
|
|
||||||
Vector2 screenP = RectTransformUtility.WorldToScreenPoint(null, from.position);
|
|
||||||
screenP += fromPivotDerivedOffset;
|
|
||||||
RectTransformUtility.ScreenPointToLocalPointInRectangle(to, screenP, null, out localPoint);
|
|
||||||
Vector2 pivotDerivedOffset = new Vector2(to.rect.width * 0.5f + to.rect.xMin, to.rect.height * 0.5f + to.rect.yMin);
|
|
||||||
return to.anchoredPosition + localPoint - pivotDerivedOffset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: a7655e50a1228954492ba06913483c38
|
|
||||||
@@ -1,389 +0,0 @@
|
|||||||
// Author: Daniele Giardini - http://www.demigiant.com
|
|
||||||
// Created: 2018/07/13
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using UnityEngine;
|
|
||||||
using DG.Tweening.Core;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
//#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
|
|
||||||
//using Task = System.Threading.Tasks.Task;
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
#pragma warning disable 1591
|
|
||||||
namespace DG.Tweening
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Shortcuts/functions that are not strictly related to specific Modules
|
|
||||||
/// but are available only on some Unity versions
|
|
||||||
/// </summary>
|
|
||||||
public static class DOTweenModuleUnityVersion
|
|
||||||
{
|
|
||||||
#region Material
|
|
||||||
|
|
||||||
/// <summary>Tweens a Material's color using the given gradient
|
|
||||||
/// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="gradient">The gradient to use</param><param name="duration">The duration of the tween</param>
|
|
||||||
public static Sequence DOGradientColor(this Material target, Gradient gradient, float duration)
|
|
||||||
{
|
|
||||||
Sequence s = DOTween.Sequence();
|
|
||||||
GradientColorKey[] colors = gradient.colorKeys;
|
|
||||||
int len = colors.Length;
|
|
||||||
for (int i = 0; i < len; ++i) {
|
|
||||||
GradientColorKey c = colors[i];
|
|
||||||
if (i == 0 && c.time <= 0) {
|
|
||||||
target.color = c.color;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
float colorDuration = i == len - 1
|
|
||||||
? duration - s.Duration(false) // Verifies that total duration is correct
|
|
||||||
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
|
|
||||||
s.Append(target.DOColor(c.color, colorDuration).SetEase(Ease.Linear));
|
|
||||||
}
|
|
||||||
s.SetTarget(target);
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
/// <summary>Tweens a Material's named color property using the given gradient
|
|
||||||
/// (NOTE 1: only uses the colors of the gradient, not the alphas - NOTE 2: creates a Sequence, not a Tweener).
|
|
||||||
/// Also stores the image as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="gradient">The gradient to use</param>
|
|
||||||
/// <param name="property">The name of the material property to tween (like _Tint or _SpecColor)</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
public static Sequence DOGradientColor(this Material target, Gradient gradient, string property, float duration)
|
|
||||||
{
|
|
||||||
Sequence s = DOTween.Sequence();
|
|
||||||
GradientColorKey[] colors = gradient.colorKeys;
|
|
||||||
int len = colors.Length;
|
|
||||||
for (int i = 0; i < len; ++i) {
|
|
||||||
GradientColorKey c = colors[i];
|
|
||||||
if (i == 0 && c.time <= 0) {
|
|
||||||
target.SetColor(property, c.color);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
float colorDuration = i == len - 1
|
|
||||||
? duration - s.Duration(false) // Verifies that total duration is correct
|
|
||||||
: duration * (i == 0 ? c.time : c.time - colors[i - 1].time);
|
|
||||||
s.Append(target.DOColor(c.color, property, colorDuration).SetEase(Ease.Linear));
|
|
||||||
}
|
|
||||||
s.SetTarget(target);
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region CustomYieldInstructions
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or complete.
|
|
||||||
/// It can be used inside a coroutine as a yield.
|
|
||||||
/// <para>Example usage:</para><code>yield return myTween.WaitForCompletion(true);</code>
|
|
||||||
/// </summary>
|
|
||||||
public static CustomYieldInstruction WaitForCompletion(this Tween t, bool returnCustomYieldInstruction)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new DOTweenCYInstruction.WaitForCompletion(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or rewinded.
|
|
||||||
/// It can be used inside a coroutine as a yield.
|
|
||||||
/// <para>Example usage:</para><code>yield return myTween.WaitForRewind();</code>
|
|
||||||
/// </summary>
|
|
||||||
public static CustomYieldInstruction WaitForRewind(this Tween t, bool returnCustomYieldInstruction)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new DOTweenCYInstruction.WaitForRewind(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed.
|
|
||||||
/// It can be used inside a coroutine as a yield.
|
|
||||||
/// <para>Example usage:</para><code>yield return myTween.WaitForKill();</code>
|
|
||||||
/// </summary>
|
|
||||||
public static CustomYieldInstruction WaitForKill(this Tween t, bool returnCustomYieldInstruction)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new DOTweenCYInstruction.WaitForKill(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or has gone through the given amount of loops.
|
|
||||||
/// It can be used inside a coroutine as a yield.
|
|
||||||
/// <para>Example usage:</para><code>yield return myTween.WaitForElapsedLoops(2);</code>
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="elapsedLoops">Elapsed loops to wait for</param>
|
|
||||||
public static CustomYieldInstruction WaitForElapsedLoops(this Tween t, int elapsedLoops, bool returnCustomYieldInstruction)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new DOTweenCYInstruction.WaitForElapsedLoops(t, elapsedLoops);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed
|
|
||||||
/// or has reached the given time position (loops included, delays excluded).
|
|
||||||
/// It can be used inside a coroutine as a yield.
|
|
||||||
/// <para>Example usage:</para><code>yield return myTween.WaitForPosition(2.5f);</code>
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="position">Position (loops included, delays excluded) to wait for</param>
|
|
||||||
public static CustomYieldInstruction WaitForPosition(this Tween t, float position, bool returnCustomYieldInstruction)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new DOTweenCYInstruction.WaitForPosition(t, position);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns a <see cref="CustomYieldInstruction"/> that waits until the tween is killed or started
|
|
||||||
/// (meaning when the tween is set in a playing state the first time, after any eventual delay).
|
|
||||||
/// It can be used inside a coroutine as a yield.
|
|
||||||
/// <para>Example usage:</para><code>yield return myTween.WaitForStart();</code>
|
|
||||||
/// </summary>
|
|
||||||
public static CustomYieldInstruction WaitForStart(this Tween t, bool returnCustomYieldInstruction)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return new DOTweenCYInstruction.WaitForStart(t);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#if UNITY_2018_1_OR_NEWER
|
|
||||||
#region Unity 2018.1 or Newer
|
|
||||||
|
|
||||||
#region Material
|
|
||||||
|
|
||||||
/// <summary>Tweens a Material's named texture offset property with the given ID to the given value.
|
|
||||||
/// Also stores the material as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param>
|
|
||||||
/// <param name="propertyID">The ID of the material property to tween (also called nameID in Unity's manual)</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOOffset(this Material target, Vector2 endValue, int propertyID, float duration)
|
|
||||||
{
|
|
||||||
if (!target.HasProperty(propertyID)) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.GetTextureOffset(propertyID), x => target.SetTextureOffset(propertyID, x), endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>Tweens a Material's named texture scale property with the given ID to the given value.
|
|
||||||
/// Also stores the material as the tween's target so it can be used for filtered operations</summary>
|
|
||||||
/// <param name="endValue">The end value to reach</param>
|
|
||||||
/// <param name="propertyID">The ID of the material property to tween (also called nameID in Unity's manual)</param>
|
|
||||||
/// <param name="duration">The duration of the tween</param>
|
|
||||||
public static TweenerCore<Vector2, Vector2, VectorOptions> DOTiling(this Material target, Vector2 endValue, int propertyID, float duration)
|
|
||||||
{
|
|
||||||
if (!target.HasProperty(propertyID)) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogMissingMaterialProperty(propertyID);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
TweenerCore<Vector2, Vector2, VectorOptions> t = DOTween.To(() => target.GetTextureScale(propertyID), x => target.SetTextureScale(propertyID, x), endValue, duration);
|
|
||||||
t.SetTarget(target);
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region .NET 4.6 or Newer
|
|
||||||
|
|
||||||
#if UNITY_2018_1_OR_NEWER && (NET_4_6 || NET_STANDARD_2_0)
|
|
||||||
|
|
||||||
#region Async Instructions
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed or complete.
|
|
||||||
/// It can be used inside an async operation.
|
|
||||||
/// <para>Example usage:</para><code>await myTween.WaitForCompletion();</code>
|
|
||||||
/// </summary>
|
|
||||||
public static async System.Threading.Tasks.Task AsyncWaitForCompletion(this Tween t)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (t.active && !t.IsComplete()) await System.Threading.Tasks.Task.Yield();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed or rewinded.
|
|
||||||
/// It can be used inside an async operation.
|
|
||||||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForRewind();</code>
|
|
||||||
/// </summary>
|
|
||||||
public static async System.Threading.Tasks.Task AsyncWaitForRewind(this Tween t)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0)) await System.Threading.Tasks.Task.Yield();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed.
|
|
||||||
/// It can be used inside an async operation.
|
|
||||||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForKill();</code>
|
|
||||||
/// </summary>
|
|
||||||
public static async System.Threading.Tasks.Task AsyncWaitForKill(this Tween t)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (t.active) await System.Threading.Tasks.Task.Yield();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed or has gone through the given amount of loops.
|
|
||||||
/// It can be used inside an async operation.
|
|
||||||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForElapsedLoops();</code>
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="elapsedLoops">Elapsed loops to wait for</param>
|
|
||||||
public static async System.Threading.Tasks.Task AsyncWaitForElapsedLoops(this Tween t, int elapsedLoops)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (t.active && t.CompletedLoops() < elapsedLoops) await System.Threading.Tasks.Task.Yield();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed or started
|
|
||||||
/// (meaning when the tween is set in a playing state the first time, after any eventual delay).
|
|
||||||
/// It can be used inside an async operation.
|
|
||||||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForPosition();</code>
|
|
||||||
/// </summary>
|
|
||||||
/// <param name="position">Position (loops included, delays excluded) to wait for</param>
|
|
||||||
public static async System.Threading.Tasks.Task AsyncWaitForPosition(this Tween t, float position)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (t.active && t.position * (t.CompletedLoops() + 1) < position) await System.Threading.Tasks.Task.Yield();
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Returns an async <see cref="System.Threading.Tasks.Task"/> that waits until the tween is killed.
|
|
||||||
/// It can be used inside an async operation.
|
|
||||||
/// <para>Example usage:</para><code>await myTween.AsyncWaitForKill();</code>
|
|
||||||
/// </summary>
|
|
||||||
public static async System.Threading.Tasks.Task AsyncWaitForStart(this Tween t)
|
|
||||||
{
|
|
||||||
if (!t.active) {
|
|
||||||
if (Debugger.logPriority > 0) Debugger.LogInvalidTween(t);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (t.active && !t.playedOnce) await System.Threading.Tasks.Task.Yield();
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
// ███ CLASSES █████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
public static class DOTweenCYInstruction
|
|
||||||
{
|
|
||||||
public class WaitForCompletion : CustomYieldInstruction
|
|
||||||
{
|
|
||||||
public override bool keepWaiting { get {
|
|
||||||
return t.active && !t.IsComplete();
|
|
||||||
}}
|
|
||||||
readonly Tween t;
|
|
||||||
public WaitForCompletion(Tween tween)
|
|
||||||
{
|
|
||||||
t = tween;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class WaitForRewind : CustomYieldInstruction
|
|
||||||
{
|
|
||||||
public override bool keepWaiting { get {
|
|
||||||
return t.active && (!t.playedOnce || t.position * (t.CompletedLoops() + 1) > 0);
|
|
||||||
}}
|
|
||||||
readonly Tween t;
|
|
||||||
public WaitForRewind(Tween tween)
|
|
||||||
{
|
|
||||||
t = tween;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class WaitForKill : CustomYieldInstruction
|
|
||||||
{
|
|
||||||
public override bool keepWaiting { get {
|
|
||||||
return t.active;
|
|
||||||
}}
|
|
||||||
readonly Tween t;
|
|
||||||
public WaitForKill(Tween tween)
|
|
||||||
{
|
|
||||||
t = tween;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class WaitForElapsedLoops : CustomYieldInstruction
|
|
||||||
{
|
|
||||||
public override bool keepWaiting { get {
|
|
||||||
return t.active && t.CompletedLoops() < elapsedLoops;
|
|
||||||
}}
|
|
||||||
readonly Tween t;
|
|
||||||
readonly int elapsedLoops;
|
|
||||||
public WaitForElapsedLoops(Tween tween, int elapsedLoops)
|
|
||||||
{
|
|
||||||
t = tween;
|
|
||||||
this.elapsedLoops = elapsedLoops;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class WaitForPosition : CustomYieldInstruction
|
|
||||||
{
|
|
||||||
public override bool keepWaiting { get {
|
|
||||||
return t.active && t.position * (t.CompletedLoops() + 1) < position;
|
|
||||||
}}
|
|
||||||
readonly Tween t;
|
|
||||||
readonly float position;
|
|
||||||
public WaitForPosition(Tween tween, float position)
|
|
||||||
{
|
|
||||||
t = tween;
|
|
||||||
this.position = position;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public class WaitForStart : CustomYieldInstruction
|
|
||||||
{
|
|
||||||
public override bool keepWaiting { get {
|
|
||||||
return t.active && !t.playedOnce;
|
|
||||||
}}
|
|
||||||
readonly Tween t;
|
|
||||||
public WaitForStart(Tween tween)
|
|
||||||
{
|
|
||||||
t = tween;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c30601d6122da714ea28a9d7b1f1370c
|
|
||||||
@@ -1,167 +0,0 @@
|
|||||||
// Author: Daniele Giardini - http://www.demigiant.com
|
|
||||||
// Created: 2018/07/13
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using System.Reflection;
|
|
||||||
using UnityEngine;
|
|
||||||
using DG.Tweening.Core;
|
|
||||||
using DG.Tweening.Plugins.Core.PathCore;
|
|
||||||
using DG.Tweening.Plugins.Options;
|
|
||||||
|
|
||||||
#pragma warning disable 1591
|
|
||||||
namespace DG.Tweening
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// Utility functions that deal with available Modules.
|
|
||||||
/// Modules defines:
|
|
||||||
/// - DOTAUDIO
|
|
||||||
/// - DOTPHYSICS
|
|
||||||
/// - DOTPHYSICS2D
|
|
||||||
/// - DOTSPRITE
|
|
||||||
/// - DOTUI
|
|
||||||
/// Extra defines set and used for implementation of external assets:
|
|
||||||
/// - DOTWEEN_TMP ► TextMesh Pro
|
|
||||||
/// - DOTWEEN_TK2D ► 2D Toolkit
|
|
||||||
/// </summary>
|
|
||||||
public static class DOTweenModuleUtils
|
|
||||||
{
|
|
||||||
static bool _initialized;
|
|
||||||
|
|
||||||
#region Reflection
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Called via Reflection by DOTweenComponent on Awake
|
|
||||||
/// </summary>
|
|
||||||
#if UNITY_2018_1_OR_NEWER
|
|
||||||
[UnityEngine.Scripting.Preserve]
|
|
||||||
#endif
|
|
||||||
public static void Init()
|
|
||||||
{
|
|
||||||
if (_initialized) return;
|
|
||||||
|
|
||||||
_initialized = true;
|
|
||||||
DOTweenExternalCommand.SetOrientationOnPath += Physics.SetOrientationOnPath;
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
|
|
||||||
UnityEditor.EditorApplication.playmodeStateChanged += PlaymodeStateChanged;
|
|
||||||
#else
|
|
||||||
UnityEditor.EditorApplication.playModeStateChanged += PlaymodeStateChanged;
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#if UNITY_2018_1_OR_NEWER
|
|
||||||
#pragma warning disable
|
|
||||||
[UnityEngine.Scripting.Preserve]
|
|
||||||
// Just used to preserve methods when building, never called
|
|
||||||
static void Preserver()
|
|
||||||
{
|
|
||||||
Assembly[] loadedAssemblies = AppDomain.CurrentDomain.GetAssemblies();
|
|
||||||
MethodInfo mi = typeof(MonoBehaviour).GetMethod("Stub");
|
|
||||||
}
|
|
||||||
#pragma warning restore
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
|
||||||
// Fires OnApplicationPause in DOTweenComponent even when Editor is paused (otherwise it's only fired at runtime)
|
|
||||||
#if UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_5 || UNITY_2017_1
|
|
||||||
static void PlaymodeStateChanged()
|
|
||||||
#else
|
|
||||||
static void PlaymodeStateChanged(UnityEditor.PlayModeStateChange state)
|
|
||||||
#endif
|
|
||||||
{
|
|
||||||
if (DOTween.instance == null) return;
|
|
||||||
DOTween.instance.OnApplicationPause(UnityEditor.EditorApplication.isPaused);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
// ███ INTERNAL CLASSES ████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
// █████████████████████████████████████████████████████████████████████████████████████████████████████████████████████
|
|
||||||
|
|
||||||
public static class Physics
|
|
||||||
{
|
|
||||||
// Called via DOTweenExternalCommand callback
|
|
||||||
public static void SetOrientationOnPath(PathOptions options, Tween t, Quaternion newRot, Transform trans)
|
|
||||||
{
|
|
||||||
#if true // PHYSICS_MARKER
|
|
||||||
if (options.isRigidbody) ((Rigidbody)t.target).rotation = newRot;
|
|
||||||
else trans.rotation = newRot;
|
|
||||||
#else
|
|
||||||
trans.rotation = newRot;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Returns FALSE if the DOTween's Physics2D Module is disabled, or if there's no Rigidbody2D attached
|
|
||||||
public static bool HasRigidbody2D(Component target)
|
|
||||||
{
|
|
||||||
#if true // PHYSICS2D_MARKER
|
|
||||||
return target.GetComponent<Rigidbody2D>() != null;
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#region Called via Reflection
|
|
||||||
|
|
||||||
|
|
||||||
// Called via Reflection by DOTweenPathInspector
|
|
||||||
// Returns FALSE if the DOTween's Physics Module is disabled, or if there's no rigidbody attached
|
|
||||||
#if UNITY_2018_1_OR_NEWER
|
|
||||||
[UnityEngine.Scripting.Preserve]
|
|
||||||
#endif
|
|
||||||
public static bool HasRigidbody(Component target)
|
|
||||||
{
|
|
||||||
#if true // PHYSICS_MARKER
|
|
||||||
return target.GetComponent<Rigidbody>() != null;
|
|
||||||
#else
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Called via Reflection by DOTweenPath
|
|
||||||
#if UNITY_2018_1_OR_NEWER
|
|
||||||
[UnityEngine.Scripting.Preserve]
|
|
||||||
#endif
|
|
||||||
public static TweenerCore<Vector3, Path, PathOptions> CreateDOTweenPathTween(
|
|
||||||
MonoBehaviour target, bool tweenRigidbody, bool isLocal, Path path, float duration, PathMode pathMode
|
|
||||||
){
|
|
||||||
TweenerCore<Vector3, Path, PathOptions> t = null;
|
|
||||||
bool rBodyFoundAndTweened = false;
|
|
||||||
#if true // PHYSICS_MARKER
|
|
||||||
if (tweenRigidbody) {
|
|
||||||
Rigidbody rBody = target.GetComponent<Rigidbody>();
|
|
||||||
if (rBody != null) {
|
|
||||||
rBodyFoundAndTweened = true;
|
|
||||||
t = isLocal
|
|
||||||
? rBody.DOLocalPath(path, duration, pathMode)
|
|
||||||
: rBody.DOPath(path, duration, pathMode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#if true // PHYSICS2D_MARKER
|
|
||||||
if (!rBodyFoundAndTweened && tweenRigidbody) {
|
|
||||||
Rigidbody2D rBody2D = target.GetComponent<Rigidbody2D>();
|
|
||||||
if (rBody2D != null) {
|
|
||||||
rBodyFoundAndTweened = true;
|
|
||||||
t = isLocal
|
|
||||||
? rBody2D.DOLocalPath(path, duration, pathMode)
|
|
||||||
: rBody2D.DOPath(path, duration, pathMode);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
if (!rBodyFoundAndTweened) {
|
|
||||||
t = isLocal
|
|
||||||
? target.transform.DOLocalPath(path, duration, pathMode)
|
|
||||||
: target.transform.DOPath(path, duration, pathMode);
|
|
||||||
}
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 1c73d7d121d6d754baf7637129fc5f53
|
|
||||||
@@ -1,29 +0,0 @@
|
|||||||
DOTween and DOTween Pro are copyright (c) 2014-2018 Daniele Giardini - Demigiant
|
|
||||||
|
|
||||||
// IMPORTANT!!! /////////////////////////////////////////////
|
|
||||||
// Upgrading DOTween from versions older than 1.2.000 ///////
|
|
||||||
// (or DOTween Pro older than 1.0.000) //////////////////////
|
|
||||||
-------------------------------------------------------------
|
|
||||||
If you're upgrading your project from a version of DOTween older than 1.2.000 (or DOTween Pro older than 1.0.000) please follow these instructions carefully.
|
|
||||||
1) Import the new version in the same folder as the previous one, overwriting old files. A lot of errors will appear but don't worry
|
|
||||||
2) Close and reopen Unity (and your project). This is fundamental: skipping this step will cause a bloodbath
|
|
||||||
3) Open DOTween's Utility Panel (Tools > Demigiant > DOTween Utility Panel) if it doesn't open automatically, then press "Setup DOTween...": this will run the upgrade setup
|
|
||||||
4) From the Add/Remove Modules panel that opens, activate/deactivate Modules for Unity systems and for external assets (Pro version only)
|
|
||||||
|
|
||||||
// GET STARTED //////////////////////////////////////////////
|
|
||||||
|
|
||||||
- After importing a new DOTween update, select DOTween's Utility Panel from the "Tools/Demigiant" menu (if it doesn't open automatically) and press the "Setup DOTween..." button to activate/deactivate Modules. You can also access a Preferences Tab from there to choose default settings for DOTween.
|
|
||||||
- In your code, add "using DG.Tweening" to each class where you want to use DOTween.
|
|
||||||
- You're ready to tween. Check out the links below for full documentation and license info.
|
|
||||||
|
|
||||||
|
|
||||||
// LINKS ///////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
DOTween website (documentation, examples, etc): http://dotween.demigiant.com
|
|
||||||
DOTween license: http://dotween.demigiant.com/license.php
|
|
||||||
DOTween repository (Google Code): https://code.google.com/p/dotween/
|
|
||||||
Demigiant website (documentation, examples, etc): http://www.demigiant.com
|
|
||||||
|
|
||||||
// NOTES //////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
- DOTween's Utility Panel can be found under "Tools > Demigiant > DOTween Utility Panel" and also contains other useful options, plus a tab to set DOTween's preferences
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: c2248aea0ebe1cf4b8f32453c9692fc5
|
|
||||||
TextScriptImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: f67d47da94dd9314dbba5ea80434dff0
|
guid: c5225a17ca9835b4294886632c25de01
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: c68793a92f3b1514faf4138d9d7cd066
|
guid: da2e19a1c5f8b4e2ca7c1785ea338b2e
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!114 &11400000
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 0}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 118450fad714b420684eb5f984268b5c, type: 3}
|
||||||
|
m_Name: PrimeTweenInstaller
|
||||||
|
m_EditorClassIdentifier:
|
||||||
|
demoScene: {fileID: 102900000, guid: 13170347bc506405f88d3a87bd0982b3, type: 3}
|
||||||
|
demoSceneUrp: {fileID: 102900000, guid: 15054139658a5445689224c71f805b10, type: 3}
|
||||||
|
demoScenePro: {fileID: 102900000, guid: e8086c8f95dba534ca9bf16d3ce9ef31, type: 3}
|
||||||
|
demoSceneProUrp: {fileID: 102900000, guid: 2992e8ebf85ed47489b777c4d27b9952, type: 3}
|
||||||
|
uninstallButtonColor: {r: 1, g: 0.23113209, b: 0.2762581, a: 1}
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: aafeeef745bb4406db1b2cd166853022
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
AssetOrigin:
|
||||||
|
serializedVersion: 1
|
||||||
|
productId: 252960
|
||||||
|
packageName: "PrimeTween \xB7 High-Performance Animations and Sequences"
|
||||||
|
packageVersion: 1.3.7
|
||||||
|
assetPath: Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset
|
||||||
|
uploadId: 860556
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 2833224d328674142b6e584bcfa6486b
|
guid: f164d11d6323e46b786f187ecd84eb1b
|
||||||
folderAsset: yes
|
folderAsset: yes
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"name": "PrimeTween.Installer",
|
||||||
|
"rootNamespace": "",
|
||||||
|
"references": [
|
||||||
|
"PrimeTween.Runtime"
|
||||||
|
],
|
||||||
|
"includePlatforms": [
|
||||||
|
"Editor"
|
||||||
|
],
|
||||||
|
"excludePlatforms": [],
|
||||||
|
"allowUnsafeCode": false,
|
||||||
|
"overrideReferences": false,
|
||||||
|
"precompiledReferences": [],
|
||||||
|
"autoReferenced": true,
|
||||||
|
"defineConstraints": [],
|
||||||
|
"versionDefines": [
|
||||||
|
{
|
||||||
|
"name": "com.kyrylokuzyk.primetween",
|
||||||
|
"expression": "1.0.0",
|
||||||
|
"define": "PRIME_TWEEN_INSTALLED"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "com.kyrylokuzyk.primetween",
|
||||||
|
"expression": "[1.3.6-pro]",
|
||||||
|
"define": "PRIME_TWEEN_PRO"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"noEngineReferences": false
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 090d70c1ebac0421985bd70fa7f561ef
|
||||||
|
AssemblyDefinitionImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
AssetOrigin:
|
||||||
|
serializedVersion: 1
|
||||||
|
productId: 252960
|
||||||
|
packageName: "PrimeTween \xB7 High-Performance Animations and Sequences"
|
||||||
|
packageVersion: 1.3.7
|
||||||
|
assetPath: Assets/Plugins/PrimeTween/internal/PrimeTween.Installer.asmdef
|
||||||
|
uploadId: 860556
|
||||||
@@ -0,0 +1,548 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Reflection;
|
||||||
|
using System.Reflection.Emit;
|
||||||
|
using System.Text;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
using UnityEditor;
|
||||||
|
using UnityEditor.PackageManager;
|
||||||
|
using UnityEditor.SceneManagement;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Assertions;
|
||||||
|
using UnityEngine.Rendering;
|
||||||
|
using static UnityEngine.GUILayout;
|
||||||
|
[assembly: System.Runtime.CompilerServices.InternalsVisibleTo("PrimeTween.Internal")]
|
||||||
|
|
||||||
|
namespace PrimeTween {
|
||||||
|
internal class PrimeTweenInstaller : ScriptableObject {
|
||||||
|
[SerializeField] internal SceneAsset demoScene;
|
||||||
|
[SerializeField] internal SceneAsset demoSceneUrp;
|
||||||
|
[SerializeField] internal SceneAsset demoScenePro;
|
||||||
|
[SerializeField] internal SceneAsset demoSceneProUrp;
|
||||||
|
[SerializeField] internal Color uninstallButtonColor;
|
||||||
|
|
||||||
|
[ContextMenu(nameof(ResetReviewRequest))] void ResetReviewRequest() => ReviewRequest.ResetReviewRequest();
|
||||||
|
[ContextMenu(nameof(DebugReviewRequest))] void DebugReviewRequest() => ReviewRequest.DebugReviewRequest();
|
||||||
|
}
|
||||||
|
|
||||||
|
[CustomEditor(typeof(PrimeTweenInstaller), false)]
|
||||||
|
internal class InstallerInspector : Editor {
|
||||||
|
internal const string pluginName = "PrimeTween";
|
||||||
|
internal const string pluginPackageId = "com.kyrylokuzyk.primetween";
|
||||||
|
internal const string tgzPath = "Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz";
|
||||||
|
internal const string newTgzPath = "Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween-" + version + ".tgz";
|
||||||
|
const string documentationUrl = "https://github.com/KyryloKuzyk/PrimeTween";
|
||||||
|
bool isInstalled;
|
||||||
|
bool hasNewTgz;
|
||||||
|
GUIStyle boldButtonStyle;
|
||||||
|
GUIStyle uninstallButtonStyle;
|
||||||
|
GUIStyle wordWrapLabelStyle;
|
||||||
|
|
||||||
|
void OnEnable() {
|
||||||
|
isInstalled = CheckPluginInstalled();
|
||||||
|
hasNewTgz = File.Exists(newTgzPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Use Package Manager because Unity 2018 doesn't support version defines
|
||||||
|
static bool CheckPluginInstalled() {
|
||||||
|
var listRequest = Client.List(true);
|
||||||
|
while (!listRequest.IsCompleted) {
|
||||||
|
}
|
||||||
|
return listRequest.Result.Any(_ => _.name == pluginPackageId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void OnInspectorGUI() {
|
||||||
|
if (boldButtonStyle == null) {
|
||||||
|
boldButtonStyle = new GUIStyle(GUI.skin.button) { fontStyle = FontStyle.Bold };
|
||||||
|
}
|
||||||
|
var installer = (PrimeTweenInstaller)target;
|
||||||
|
if (uninstallButtonStyle == null) {
|
||||||
|
uninstallButtonStyle = new GUIStyle(GUI.skin.button) { normal = { textColor = installer.uninstallButtonColor } };
|
||||||
|
}
|
||||||
|
if (wordWrapLabelStyle == null) {
|
||||||
|
wordWrapLabelStyle = new GUIStyle(GUI.skin.label) { wordWrap = true, richText = true, margin = new RectOffset(4, 4, 8, 8) };
|
||||||
|
}
|
||||||
|
EditorGUI.indentLevel = 5;
|
||||||
|
Space(8);
|
||||||
|
Label(pluginName, EditorStyles.boldLabel);
|
||||||
|
Space(4);
|
||||||
|
if (!isInstalled) {
|
||||||
|
if (Button("Install " + pluginName)) {
|
||||||
|
installPlugin();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (hasNewTgz) {
|
||||||
|
if (Button($"Update to {version}", boldButtonStyle)) {
|
||||||
|
ReviewRequest.OnPackageUpdate();
|
||||||
|
}
|
||||||
|
Space(8);
|
||||||
|
}
|
||||||
|
if (Button("Documentation", boldButtonStyle)) {
|
||||||
|
Application.OpenURL(documentationUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
Space(8);
|
||||||
|
var rpAsset = GraphicsSettings.
|
||||||
|
#if UNITY_2019_3_OR_NEWER
|
||||||
|
defaultRenderPipeline;
|
||||||
|
#else
|
||||||
|
renderPipelineAsset;
|
||||||
|
#endif
|
||||||
|
bool isUrp = rpAsset != null && rpAsset.GetType().Name.Contains("Universal");
|
||||||
|
if (Button("Open Demo", boldButtonStyle)) {
|
||||||
|
var demoScene = isUrp ? installer.demoSceneUrp : installer.demoScene;
|
||||||
|
if (demoScene == null) {
|
||||||
|
Debug.LogError("Please re-import the plugin from Asset Store and import the 'Demo' folder.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string path = AssetDatabase.GetAssetPath(demoScene);
|
||||||
|
EditorSceneManager.OpenScene(path);
|
||||||
|
}
|
||||||
|
#if PRIME_TWEEN_PRO
|
||||||
|
if (Button("Open Demo (Pro)", boldButtonStyle)) {
|
||||||
|
var demoScene = isUrp ? installer.demoSceneProUrp : installer.demoScenePro;
|
||||||
|
if (demoScene == null) {
|
||||||
|
Debug.LogError("Please re-import the plugin from Asset Store and import the 'Demo' folder.\n");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
string path = AssetDatabase.GetAssetPath(demoScene);
|
||||||
|
EditorSceneManager.OpenScene(path);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#if UNITY_2019_4_OR_NEWER
|
||||||
|
if (Button("Import Basic Examples")) {
|
||||||
|
EditorUtility.DisplayDialog(pluginName, $"Please select the '{pluginName}' package in 'Package Manager', then press the 'Samples/Import' button at the bottom of the plugin's description.", "Ok");
|
||||||
|
UnityEditor.PackageManager.UI.Window.Open(pluginPackageId);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (Button("Support")) {
|
||||||
|
Application.OpenURL("https://github.com/KyryloKuzyk/PrimeTween#support");
|
||||||
|
}
|
||||||
|
|
||||||
|
Space(8);
|
||||||
|
if (Button("Uninstall", uninstallButtonStyle)) {
|
||||||
|
Client.Remove(pluginPackageId);
|
||||||
|
isInstalled = false;
|
||||||
|
var msg = $"Please remove the folder manually to uninstall {pluginName} completely: 'Assets/Plugins/{pluginName}'";
|
||||||
|
EditorUtility.DisplayDialog(pluginName, msg, "Ok");
|
||||||
|
Debug.Log(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (EditorPrefs.GetBool(InsertCallbackBug.showInsertCallbackBugUi, false)) {
|
||||||
|
Space(24);
|
||||||
|
Label("Updating from PrimeTween [1.1.10 - 1.1.22]", EditorStyles.boldLabel);
|
||||||
|
Label("The behaviour of 'Sequence.ChainCallback()' and 'InsertCallback()' was fixed in PrimeTween 1.2.0 so the code written with older versions may work differently in some cases.", wordWrapLabelStyle);
|
||||||
|
if (Button("Find potential issues")) {
|
||||||
|
InsertCallbackBug.Find();
|
||||||
|
}
|
||||||
|
BeginHorizontal();
|
||||||
|
if (Button("More info")) {
|
||||||
|
Application.OpenURL(InsertCallbackBug.moreInfoUrl);
|
||||||
|
}
|
||||||
|
if (Button("Download version 1.1.22")) {
|
||||||
|
Application.OpenURL("https://github.com/KyryloKuzyk/PrimeTween/blob/545dcc52769d52841e282c772e98c8984bfeb243/Benchmarks/Packages/com.kyrylokuzyk.primetween.tgz");
|
||||||
|
}
|
||||||
|
EndHorizontal();
|
||||||
|
}
|
||||||
|
|
||||||
|
Space(24);
|
||||||
|
Label("Enjoying PrimeTween?", EditorStyles.boldLabel);
|
||||||
|
Label("Consider leaving an <b>honest review</b> and starring PrimeTween on GitHub!\n\n" +
|
||||||
|
"Honest reviews make PrimeTween better and help other developers discover it.", wordWrapLabelStyle);
|
||||||
|
if (Button("Leave review!", GUI.skin.button)) {
|
||||||
|
ReviewRequest.DisableReviewRequest();
|
||||||
|
ReviewRequest.OpenReviewsURL();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void installPlugin() {
|
||||||
|
if (File.Exists(newTgzPath)) {
|
||||||
|
MoveAndRenameTgzArchive();
|
||||||
|
}
|
||||||
|
|
||||||
|
ReviewRequest.OnBeforeInstall();
|
||||||
|
var path = $"file:../{tgzPath}";
|
||||||
|
var addRequest = Client.Add(path);
|
||||||
|
while (!addRequest.IsCompleted) {
|
||||||
|
}
|
||||||
|
if (addRequest.Status == StatusCode.Success) {
|
||||||
|
Debug.Log($"{pluginName} installed successfully.\n" +
|
||||||
|
$"Offline documentation is located at Packages/{pluginName}/Documentation.md.\n" +
|
||||||
|
$"Online documentation: {documentationUrl}\n");
|
||||||
|
} else {
|
||||||
|
Debug.LogError($"Please re-import the plugin from the Asset Store and check that the file exists: [{path}].\n\n{addRequest.Error?.message}\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void MoveAndRenameTgzArchive() {
|
||||||
|
Assert.IsTrue(File.Exists(newTgzPath));
|
||||||
|
Assert.IsTrue(File.Exists(newTgzPath + ".meta"));
|
||||||
|
File.Delete(tgzPath);
|
||||||
|
File.Delete(tgzPath + ".meta");
|
||||||
|
File.Move(newTgzPath, tgzPath);
|
||||||
|
File.Move(newTgzPath + ".meta", tgzPath + ".meta");
|
||||||
|
RevertTgzMeta();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void RevertTgzMeta() {
|
||||||
|
const string path = tgzPath + ".meta";
|
||||||
|
Assert.IsTrue(File.Exists(path), path);
|
||||||
|
File.WriteAllText(path, @"fileFormatVersion: 2
|
||||||
|
guid: cdd0c4b9889044d73bc958a922ada300
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
");
|
||||||
|
}
|
||||||
|
|
||||||
|
[InitializeOnLoadMethod]
|
||||||
|
static void InitOnLoad() {
|
||||||
|
AssetDatabase.importPackageCompleted += name => {
|
||||||
|
if (name.Contains(pluginName)) {
|
||||||
|
if (CheckPluginInstalled()) {
|
||||||
|
ReviewRequest.OnPackageUpdate();
|
||||||
|
} else {
|
||||||
|
var installer = AssetDatabase.LoadAssetAtPath<PrimeTweenInstaller>("Assets/Plugins/PrimeTween/PrimeTweenInstaller.asset");
|
||||||
|
EditorUtility.FocusProjectWindow(); // this is important to show the installer object in the Project window
|
||||||
|
Selection.activeObject = installer;
|
||||||
|
EditorGUIUtility.PingObject(installer);
|
||||||
|
EditorApplication.update += InstallAndUnsubscribeFromUpdate;
|
||||||
|
void InstallAndUnsubscribeFromUpdate() {
|
||||||
|
EditorApplication.update -= InstallAndUnsubscribeFromUpdate;
|
||||||
|
installPlugin();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
internal const string version = "1.3.8";
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static class FixedUpdateParameterMigration {
|
||||||
|
internal static string[] FindLocalScriptGuids() {
|
||||||
|
var listRequest = Client.List(true);
|
||||||
|
while (!listRequest.IsCompleted) {
|
||||||
|
}
|
||||||
|
Assert.AreEqual(StatusCode.Success, listRequest.Status);
|
||||||
|
string[] folders = listRequest.Result
|
||||||
|
.Where(x => x.source == PackageSource.Embedded || x.source == PackageSource.Local)
|
||||||
|
.Where(x => x.name != InstallerInspector.pluginPackageId)
|
||||||
|
.Select(x => x.assetPath)
|
||||||
|
.Append("Assets")
|
||||||
|
.ToArray();
|
||||||
|
return AssetDatabase.FindAssets("t:Script", folders);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static bool Process(string[] scripts, bool? fixAutomatically = null) {
|
||||||
|
var logSb = new StringBuilder();
|
||||||
|
var fileSb = new StringBuilder();
|
||||||
|
foreach (string guid in scripts)
|
||||||
|
{
|
||||||
|
string path = AssetDatabase.GUIDToAssetPath(guid);
|
||||||
|
var textAsset = AssetDatabase.LoadAssetAtPath<TextAsset>(path);
|
||||||
|
string text = textAsset.text;
|
||||||
|
if (!Regex.IsMatch(text, @"using PrimeTween\s*;")) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
var parameterMatches = Regex.Matches(text, @"useFixedUpdate\s*:");
|
||||||
|
if (parameterMatches.Count > 0) {
|
||||||
|
if (!fixAutomatically.HasValue) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
logSb.Clear();
|
||||||
|
if (fixAutomatically.Value) {
|
||||||
|
fileSb.Clear();
|
||||||
|
fileSb.Append(text);
|
||||||
|
for (int i = parameterMatches.Count - 1; i >= 0; i--) {
|
||||||
|
var paramMatch = parameterMatches[i];
|
||||||
|
fileSb.Remove(paramMatch.Index, paramMatch.Length);
|
||||||
|
fileSb.Insert(paramMatch.Index, "updateType:");
|
||||||
|
}
|
||||||
|
File.WriteAllText(path, fileSb.ToString());
|
||||||
|
logSb.Append($"PrimeTween automatically renamed ({parameterMatches.Count}) occurrences of 'useFixedUpdate' to 'updateType' in file '{textAsset.name}.cs':\n");
|
||||||
|
} else {
|
||||||
|
logSb.Append($"PrimeTween: please rename ({parameterMatches.Count}) occurrences of 'useFixedUpdate' to 'updateType' in file '{textAsset.name}.cs':\n");
|
||||||
|
}
|
||||||
|
var lineMatches = Regex.Matches(text, @"(?m)^.*useFixedUpdate\s*:.*$", RegexOptions.Multiline);
|
||||||
|
foreach (Match match in lineMatches) {
|
||||||
|
logSb.Append($"{match.Value.Trim().Replace("useFixedUpdate", "<b>useFixedUpdate</b>")}\n");
|
||||||
|
}
|
||||||
|
Debug.unityLogger.Log(fixAutomatically.Value ? LogType.Warning : LogType.Error, logSb.ToString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// no need to call AssetDatabase.Refresh() here because MoveAndRenameTgzArchive() already does that
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static class ReviewRequest {
|
||||||
|
const string version = InstallerInspector.version;
|
||||||
|
const string canAskKey = "PrimeTween.canAskForReview";
|
||||||
|
const string versionKey = "PrimeTween.version";
|
||||||
|
|
||||||
|
internal static void OnPackageUpdate() {
|
||||||
|
log("OnPackageUpdate");
|
||||||
|
if (!File.Exists(InstallerInspector.newTgzPath)) {
|
||||||
|
Debug.LogError($"The installation archive is missing: '{InstallerInspector.newTgzPath}'. Please re-import PrimeTween from Asset Store.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
bool shouldAskForReview = true;
|
||||||
|
var scriptGuids = FixedUpdateParameterMigration.FindLocalScriptGuids();
|
||||||
|
if (FixedUpdateParameterMigration.Process(scriptGuids)) {
|
||||||
|
shouldAskForReview = false;
|
||||||
|
const string msg = "'bool useFixedUpdate' parameter was changed to 'UpdateType updateType' in version 1.3.0, which will cause breaking changes in your current project.\n" +
|
||||||
|
"PrimeTween can fix the breaking changes automatically, or you can fix them manually after the update.\n";
|
||||||
|
Debug.LogWarning($"PrimeTween: the {msg}");
|
||||||
|
int response = EditorUtility.DisplayDialogComplex($"{InstallerInspector.pluginName} {version}",
|
||||||
|
$"The {msg}",
|
||||||
|
"Fix automatically",
|
||||||
|
"Cancel",
|
||||||
|
"Fix manually");
|
||||||
|
string cancelMessage = $"PrimeTween: update to {version} was cancelled. You can trigger update manually from 'Assets/Plugins/PrimeTween/PrimeTweenInstaller'.";
|
||||||
|
if (response == 1) {
|
||||||
|
Debug.LogWarning(cancelMessage);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (!EditorUtility.DisplayDialog($"{InstallerInspector.pluginName} {version}", "Please back up your project before proceeding.", "OK", "Cancel")) {
|
||||||
|
Debug.LogWarning(cancelMessage);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
bool fixAutomatically = response == 0;
|
||||||
|
FixedUpdateParameterMigration.Process(scriptGuids, fixAutomatically);
|
||||||
|
}
|
||||||
|
InstallerInspector.MoveAndRenameTgzArchive();
|
||||||
|
if (UNITY_2018) {
|
||||||
|
var removeRequest = Client.Remove(InstallerInspector.pluginPackageId);
|
||||||
|
while (!removeRequest.IsCompleted) {
|
||||||
|
}
|
||||||
|
string path = $"file:../{InstallerInspector.tgzPath}";
|
||||||
|
Client.Add(path);
|
||||||
|
} else {
|
||||||
|
EditorApplication.ExecuteMenuItem("Assets/Refresh"); // AssetDatabase.Refresh() refreshes the project only partially
|
||||||
|
}
|
||||||
|
|
||||||
|
string prevVersion = savedVersion;
|
||||||
|
if (savedVersion == version) {
|
||||||
|
log($"same version {version}");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
savedVersion = version;
|
||||||
|
|
||||||
|
if (InsertCallbackBug.IsUpdatingFromVersionWithBug(prevVersion)) {
|
||||||
|
InsertCallbackBug.Find();
|
||||||
|
EditorPrefs.SetBool(InsertCallbackBug.showInsertCallbackBugUi, true);
|
||||||
|
shouldAskForReview = false;
|
||||||
|
} else {
|
||||||
|
EditorPrefs.SetBool(InsertCallbackBug.showInsertCallbackBugUi, false);
|
||||||
|
}
|
||||||
|
log($"updated from version {prevVersion} to {version}, {nameof(shouldAskForReview)}: {shouldAskForReview}");
|
||||||
|
if (shouldAskForReview) {
|
||||||
|
TryAskForReview();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool UNITY_2018 {
|
||||||
|
get {
|
||||||
|
#if UNITY_2018
|
||||||
|
return true;
|
||||||
|
#else
|
||||||
|
return false;
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void TryAskForReview() {
|
||||||
|
if (!EditorPrefs.GetBool(canAskKey, true)) {
|
||||||
|
log("can't ask");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
DisableReviewRequest();
|
||||||
|
var response = EditorUtility.DisplayDialogComplex("Enjoying PrimeTween?",
|
||||||
|
"Would you mind to leave an honest review on Asset store? Honest reviews make PrimeTween better and help other developers discover it.",
|
||||||
|
"Sure, leave a review!",
|
||||||
|
"Never ask again",
|
||||||
|
"");
|
||||||
|
if (response == 0) {
|
||||||
|
OpenReviewsURL();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void OnBeforeInstall() {
|
||||||
|
log($"OnBeforeInstall {version}");
|
||||||
|
if (string.IsNullOrEmpty(savedVersion)) {
|
||||||
|
savedVersion = version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static string savedVersion {
|
||||||
|
get => EditorPrefs.GetString(versionKey);
|
||||||
|
set => EditorPrefs.SetString(versionKey, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void DisableReviewRequest() => EditorPrefs.SetBool(canAskKey, false);
|
||||||
|
internal static void OpenReviewsURL() => Application.OpenURL("https://assetstore.unity.com/packages/slug/252960#reviews");
|
||||||
|
|
||||||
|
internal static void ResetReviewRequest() {
|
||||||
|
Debug.Log(nameof(ResetReviewRequest));
|
||||||
|
EditorPrefs.DeleteKey(versionKey);
|
||||||
|
EditorPrefs.DeleteKey(canAskKey);
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void DebugReviewRequest() {
|
||||||
|
Debug.Log(nameof(DebugReviewRequest));
|
||||||
|
savedVersion = "1.1.22";
|
||||||
|
EditorPrefs.SetBool(canAskKey, false);
|
||||||
|
// TryAskForReview();
|
||||||
|
}
|
||||||
|
|
||||||
|
[System.Diagnostics.Conditional("_")]
|
||||||
|
static void log(string msg) {
|
||||||
|
Debug.Log($"ReviewRequest: {msg}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static class InsertCallbackBug {
|
||||||
|
internal const string moreInfoUrl = "https://github.com/KyryloKuzyk/PrimeTween/discussions/112";
|
||||||
|
internal const string showInsertCallbackBugUi = "PrimeTween.showInsertCallbackBugUi";
|
||||||
|
static Dictionary<short, OpCode> OpCodeDict;
|
||||||
|
static MethodInfo[] methodsWithBug;
|
||||||
|
static MethodInfo[] groupMethods;
|
||||||
|
|
||||||
|
internal static bool IsUpdatingFromVersionWithBug(string prevVersionString) {
|
||||||
|
if (Version.TryParse(prevVersionString, out var prevVersion)
|
||||||
|
&& new Version(1, 1, 10) <= prevVersion
|
||||||
|
&& prevVersion <= new Version(1, 1, 22)
|
||||||
|
) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
internal static void Find() {
|
||||||
|
OpCodeDict = typeof(OpCodes)
|
||||||
|
.GetFields(BindingFlags.Public | BindingFlags.Static)
|
||||||
|
.Select(x => (OpCode)x.GetValue(null))
|
||||||
|
.ToDictionary(x => x.Value, x => x);
|
||||||
|
#if PRIME_TWEEN_INSTALLED
|
||||||
|
methodsWithBug = typeof(Sequence).GetMethods(BindingFlags.Public | BindingFlags.Instance)
|
||||||
|
.Where(methodInfo => methodInfo.Name == nameof(Sequence.ChainCallback) || methodInfo.Name == nameof(Sequence.InsertCallback))
|
||||||
|
.Select(methodInfo => methodInfo.IsGenericMethod ? methodInfo.GetGenericMethodDefinition() : methodInfo)
|
||||||
|
.ToArray();
|
||||||
|
Assert.AreEqual(4, methodsWithBug.Length);
|
||||||
|
groupMethods = typeof(Sequence).GetMethods(BindingFlags.Public | BindingFlags.Instance)
|
||||||
|
.Where(methodInfo => methodInfo.Name == nameof(Sequence.Group))
|
||||||
|
.ToArray();
|
||||||
|
#endif
|
||||||
|
Assert.AreEqual(2, groupMethods.Length);
|
||||||
|
|
||||||
|
string methodAssemblyName = methodsWithBug[0].Module.Assembly.FullName;
|
||||||
|
const BindingFlags findAll = BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.Static;
|
||||||
|
int numPotentialIssues = AppDomain.CurrentDomain.GetAssemblies()
|
||||||
|
.Where(assembly => assembly.GetReferencedAssemblies().Any(dependency => dependency.FullName == methodAssemblyName))
|
||||||
|
.Where(assembly => !assembly.GetName().Name.StartsWith("PrimeTween.", StringComparison.Ordinal))
|
||||||
|
.SelectMany(assembly => assembly.GetTypes())
|
||||||
|
.SelectMany(type => type.GetMethods(findAll).Cast<MethodBase>().Union(type.GetConstructors(findAll)))
|
||||||
|
.Count(method => FindInMethod(method));
|
||||||
|
if (numPotentialIssues == 0) {
|
||||||
|
Debug.Log($"PrimeTween updated to version {InstallerInspector.version}: no potential issues found in ChainCallback() and InsertCallback() usages.\n" +
|
||||||
|
$"More info: {moreInfoUrl}\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
int updateResponse = EditorUtility.DisplayDialogComplex($"{InstallerInspector.pluginName} {InstallerInspector.version}",
|
||||||
|
"PrimeTween 1.2.0 fixed a bug in ChainCallback() and InsertCallback() methods.\n" +
|
||||||
|
"This fix may introduce breaking changes in the existing projects. Please see the Console output for more details.",
|
||||||
|
"More info",
|
||||||
|
"Close",
|
||||||
|
"");
|
||||||
|
if (updateResponse == 0) {
|
||||||
|
Application.OpenURL(moreInfoUrl);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// https://stackoverflow.com/a/33034906/1951038
|
||||||
|
static bool FindInMethod(MethodBase method) {
|
||||||
|
byte[] il = method.GetMethodBody()?.GetILAsByteArray();
|
||||||
|
if (il == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
bool bugFound = false;
|
||||||
|
using (var br = new BinaryReader(new MemoryStream(il))) {
|
||||||
|
while (br.BaseStream.Position < br.BaseStream.Length) {
|
||||||
|
byte firstByte = br.ReadByte();
|
||||||
|
short opCodeValue = firstByte == 0xFE ? BitConverter.ToInt16(new[] { br.ReadByte(), firstByte }, 0) : firstByte;
|
||||||
|
OpCode opCode = OpCodeDict[opCodeValue];
|
||||||
|
switch (opCode.OperandType) {
|
||||||
|
case OperandType.ShortInlineBrTarget:
|
||||||
|
case OperandType.ShortInlineVar:
|
||||||
|
case OperandType.ShortInlineI:
|
||||||
|
br.ReadByte();
|
||||||
|
break;
|
||||||
|
case OperandType.InlineVar:
|
||||||
|
br.ReadInt16();
|
||||||
|
break;
|
||||||
|
case OperandType.InlineField:
|
||||||
|
case OperandType.InlineType:
|
||||||
|
case OperandType.ShortInlineR:
|
||||||
|
case OperandType.InlineString:
|
||||||
|
case OperandType.InlineSig:
|
||||||
|
case OperandType.InlineI:
|
||||||
|
case OperandType.InlineBrTarget:
|
||||||
|
br.ReadInt32();
|
||||||
|
break;
|
||||||
|
case OperandType.InlineI8:
|
||||||
|
case OperandType.InlineR:
|
||||||
|
br.ReadInt64();
|
||||||
|
break;
|
||||||
|
case OperandType.InlineSwitch:
|
||||||
|
var size = (int)br.ReadUInt32();
|
||||||
|
br.ReadBytes(size * 4);
|
||||||
|
break;
|
||||||
|
case OperandType.InlineTok:
|
||||||
|
br.ReadUInt32();
|
||||||
|
break;
|
||||||
|
case OperandType.InlineMethod:
|
||||||
|
int token = (int)br.ReadUInt32();
|
||||||
|
if (method.Module.ResolveMethod(token) is MethodInfo resolvedMethod) {
|
||||||
|
if (bugFound) {
|
||||||
|
if (groupMethods.Contains(resolvedMethod)) {
|
||||||
|
Debug.LogError($"PrimeTween updated to version {InstallerInspector.version}: potential breaking change found in the '{method.DeclaringType}.{method.Name}()' method.\n" +
|
||||||
|
"Please double-check the behavior if Group() is called immediately after the ChainCallback() or InsertCallback() and apply the fix manually if necessary.\n" +
|
||||||
|
"Or use ChainCallbackObsolete/InsertCallbackObsolete() instead to preserve the old incorrect behavior.\n" +
|
||||||
|
$"More info: {moreInfoUrl}\n");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
bugFound = isMethodWithBug(resolvedMethod);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case OperandType.InlineNone:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
throw new Exception();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
static bool isMethodWithBug(MethodInfo method) {
|
||||||
|
foreach (var methodWithBug in methodsWithBug) {
|
||||||
|
if (methodWithBug.IsGenericMethodDefinition && method.IsGenericMethod) {
|
||||||
|
if (methodWithBug == method.GetGenericMethodDefinition()) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if (methodWithBug == method) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,18 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 118450fad714b420684eb5f984268b5c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
|
AssetOrigin:
|
||||||
|
serializedVersion: 1
|
||||||
|
productId: 252960
|
||||||
|
packageName: "PrimeTween \xB7 High-Performance Animations and Sequences"
|
||||||
|
packageVersion: 1.3.7
|
||||||
|
assetPath: Assets/Plugins/PrimeTween/internal/PrimeTweenInstaller.cs
|
||||||
|
uploadId: 860556
|
||||||
Binary file not shown.
+1
-2
@@ -1,6 +1,5 @@
|
|||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 4238dd9a40574e74b8edf32491eb0a91
|
guid: cdd0c4b9889044d73bc958a922ada300
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
DefaultImporter:
|
||||||
externalObjects: {}
|
externalObjects: {}
|
||||||
userData:
|
userData:
|
||||||
+128
-64
@@ -1,5 +1,125 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!1 &3289371692724125705
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 5066566369128400178}
|
||||||
|
- component: {fileID: 8836731213023353337}
|
||||||
|
- component: {fileID: 3524195282899996530}
|
||||||
|
- component: {fileID: 6475761234177318450}
|
||||||
|
m_Layer: 12
|
||||||
|
m_Name: Radar
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &5066566369128400178
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3289371692724125705}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 4741199656111979734}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &8836731213023353337
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3289371692724125705}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 582294c360404f6d952d9e28bde1fbea, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier: Assembly-CSharp::Code.Example.Platformer.Entity.Enemies.BeeRadar
|
||||||
|
bee: {fileID: 8386846360287835849}
|
||||||
|
--- !u!61 &3524195282899996530
|
||||||
|
BoxCollider2D:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3289371692724125705}
|
||||||
|
m_Enabled: 1
|
||||||
|
serializedVersion: 3
|
||||||
|
m_Density: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_LayerOverridePriority: 0
|
||||||
|
m_ForceSendLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ForceReceiveLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_ContactCaptureLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_CallbackLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 4294967295
|
||||||
|
m_IsTrigger: 1
|
||||||
|
m_UsedByEffector: 0
|
||||||
|
m_CompositeOperation: 0
|
||||||
|
m_CompositeOrder: 0
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_SpriteTilingProperty:
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
pivot: {x: 0.5, y: 0.5}
|
||||||
|
oldSize: {x: 0.64, y: 0.64}
|
||||||
|
newSize: {x: 0.64, y: 0.64}
|
||||||
|
adaptiveTilingThreshold: 0.5
|
||||||
|
drawMode: 0
|
||||||
|
adaptiveTiling: 0
|
||||||
|
m_AutoTiling: 0
|
||||||
|
m_Size: {x: 1.5, y: 1.5}
|
||||||
|
m_EdgeRadius: 0
|
||||||
|
--- !u!50 &6475761234177318450
|
||||||
|
Rigidbody2D:
|
||||||
|
serializedVersion: 5
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 3289371692724125705}
|
||||||
|
m_BodyType: 1
|
||||||
|
m_Simulated: 1
|
||||||
|
m_UseFullKinematicContacts: 0
|
||||||
|
m_UseAutoMass: 0
|
||||||
|
m_Mass: 0.1024
|
||||||
|
m_LinearDamping: 0
|
||||||
|
m_AngularDamping: 0.05
|
||||||
|
m_GravityScale: 1
|
||||||
|
m_Material: {fileID: 0}
|
||||||
|
m_IncludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_ExcludeLayers:
|
||||||
|
serializedVersion: 2
|
||||||
|
m_Bits: 0
|
||||||
|
m_Interpolate: 0
|
||||||
|
m_SleepingMode: 1
|
||||||
|
m_CollisionDetection: 0
|
||||||
|
m_Constraints: 4
|
||||||
--- !u!1 &3801642601722797476
|
--- !u!1 &3801642601722797476
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -14,8 +134,6 @@ GameObject:
|
|||||||
- component: {fileID: 8927136534498308671}
|
- component: {fileID: 8927136534498308671}
|
||||||
- component: {fileID: 5680405559112544362}
|
- component: {fileID: 5680405559112544362}
|
||||||
- component: {fileID: 8386846360287835849}
|
- component: {fileID: 8386846360287835849}
|
||||||
- component: {fileID: 7940216146645726591}
|
|
||||||
- component: {fileID: 5514160892776806411}
|
|
||||||
m_Layer: 11
|
m_Layer: 11
|
||||||
m_Name: Bee
|
m_Name: Bee
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -35,7 +153,8 @@ Transform:
|
|||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
m_ConstrainProportionsScale: 0
|
m_ConstrainProportionsScale: 0
|
||||||
m_Children: []
|
m_Children:
|
||||||
|
- {fileID: 5066566369128400178}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!212 &4182593557770740918
|
--- !u!212 &4182593557770740918
|
||||||
@@ -151,7 +270,7 @@ Rigidbody2D:
|
|||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_GameObject: {fileID: 3801642601722797476}
|
m_GameObject: {fileID: 3801642601722797476}
|
||||||
m_BodyType: 0
|
m_BodyType: 1
|
||||||
m_Simulated: 0
|
m_Simulated: 0
|
||||||
m_UseFullKinematicContacts: 0
|
m_UseFullKinematicContacts: 0
|
||||||
m_UseAutoMass: 0
|
m_UseAutoMass: 0
|
||||||
@@ -208,63 +327,8 @@ MonoBehaviour:
|
|||||||
animator: {fileID: 5680405559112544362}
|
animator: {fileID: 5680405559112544362}
|
||||||
spriteRenderer: {fileID: 4182593557770740918}
|
spriteRenderer: {fileID: 4182593557770740918}
|
||||||
groundPoint: {x: 0, y: 0}
|
groundPoint: {x: 0, y: 0}
|
||||||
partolPoints: []
|
partolPoints:
|
||||||
--- !u!114 &7940216146645726591
|
- {fileID: 0}
|
||||||
MonoBehaviour:
|
- {fileID: 0}
|
||||||
m_ObjectHideFlags: 0
|
onPatrol: 1
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
_currentTarget: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 3801642601722797476}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 582294c360404f6d952d9e28bde1fbea, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.Example.Platformer.Entity.Enemies.BeeRadar
|
|
||||||
bee: {fileID: 8386846360287835849}
|
|
||||||
--- !u!61 &5514160892776806411
|
|
||||||
BoxCollider2D:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 3801642601722797476}
|
|
||||||
m_Enabled: 1
|
|
||||||
serializedVersion: 3
|
|
||||||
m_Density: 1
|
|
||||||
m_Material: {fileID: 0}
|
|
||||||
m_IncludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_ExcludeLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 0
|
|
||||||
m_LayerOverridePriority: 0
|
|
||||||
m_ForceSendLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_ForceReceiveLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_ContactCaptureLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_CallbackLayers:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Bits: 4294967295
|
|
||||||
m_IsTrigger: 1
|
|
||||||
m_UsedByEffector: 0
|
|
||||||
m_CompositeOperation: 0
|
|
||||||
m_CompositeOrder: 0
|
|
||||||
m_Offset: {x: 0, y: 0}
|
|
||||||
m_SpriteTilingProperty:
|
|
||||||
border: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
pivot: {x: 0.5, y: 0.5}
|
|
||||||
oldSize: {x: 0.64, y: 0.64}
|
|
||||||
newSize: {x: 0.64, y: 0.64}
|
|
||||||
adaptiveTilingThreshold: 0.5
|
|
||||||
drawMode: 0
|
|
||||||
adaptiveTiling: 0
|
|
||||||
m_AutoTiling: 0
|
|
||||||
m_Size: {x: 1.5, y: 1.5}
|
|
||||||
m_EdgeRadius: 0
|
|
||||||
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -176,6 +176,37 @@ MonoBehaviour:
|
|||||||
m_Script: {fileID: 11500000, guid: 0aa23aea61d74467889be39a550c9922, type: 3}
|
m_Script: {fileID: 11500000, guid: 0aa23aea61d74467889be39a550c9922, type: 3}
|
||||||
m_Name:
|
m_Name:
|
||||||
m_EditorClassIdentifier: Assembly-CSharp::Code.Example.Platformer.PlatformerSceneInstaller
|
m_EditorClassIdentifier: Assembly-CSharp::Code.Example.Platformer.PlatformerSceneInstaller
|
||||||
|
--- !u!1 &97537770
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 97537771}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: 1
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &97537771
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 97537770}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0.804, y: 0.558, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &494311809
|
--- !u!1 &494311809
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -487,6 +518,37 @@ BoxCollider2D:
|
|||||||
m_AutoTiling: 0
|
m_AutoTiling: 0
|
||||||
m_Size: {x: 0.8, y: 0.67}
|
m_Size: {x: 0.8, y: 0.67}
|
||||||
m_EdgeRadius: 0
|
m_EdgeRadius: 0
|
||||||
|
--- !u!1 &1369074042
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1369074043}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: 1 (1)
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1369074043
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1369074042}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 1.84, y: 0.463, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 0}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!1 &1464509735
|
--- !u!1 &1464509735
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -975,6 +1037,18 @@ PrefabInstance:
|
|||||||
propertyPath: m_LocalEulerAnglesHint.z
|
propertyPath: m_LocalEulerAnglesHint.z
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 8386846360287835849, guid: 0eb645a0c96b1c437bf0712d6b856b7c, type: 3}
|
||||||
|
propertyPath: 'partolPoints.Array.data[0]'
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 97537771}
|
||||||
|
- target: {fileID: 8386846360287835849, guid: 0eb645a0c96b1c437bf0712d6b856b7c, type: 3}
|
||||||
|
propertyPath: 'partolPoints.Array.data[1]'
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 1369074043}
|
||||||
|
- target: {fileID: 8927136534498308671, guid: 0eb645a0c96b1c437bf0712d6b856b7c, type: 3}
|
||||||
|
propertyPath: m_Simulated
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
m_RemovedComponents: []
|
m_RemovedComponents: []
|
||||||
m_RemovedGameObjects: []
|
m_RemovedGameObjects: []
|
||||||
m_AddedGameObjects: []
|
m_AddedGameObjects: []
|
||||||
@@ -1195,3 +1269,5 @@ SceneRoots:
|
|||||||
- {fileID: 4401792132824091566}
|
- {fileID: 4401792132824091566}
|
||||||
- {fileID: 3495612028810159075}
|
- {fileID: 3495612028810159075}
|
||||||
- {fileID: 7850265554012673606}
|
- {fileID: 7850265554012673606}
|
||||||
|
- {fileID: 97537771}
|
||||||
|
- {fileID: 1369074043}
|
||||||
File renamed without changes.
File renamed without changes.
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
#pragma warning disable CS0105
|
#pragma warning disable CS0105
|
||||||
using Code.Example.Race.Racer;
|
using Code.Example.Race.Racer;
|
||||||
using Code.Infrastructure.Configs;
|
|
||||||
using Code.Infrastructure.Camera;
|
using Code.Infrastructure.Camera;
|
||||||
|
using Code.Infrastructure.Configs;
|
||||||
using Code.Infrastructure.Audio;
|
using Code.Infrastructure.Audio;
|
||||||
using Code.Infrastructure.Camera;
|
using Code.Infrastructure.Camera;
|
||||||
using Code.Infrastructure.UI;
|
using Code.Infrastructure.UI;
|
||||||
@@ -28,10 +28,10 @@ using Code.Infrastructure.Input;
|
|||||||
|
|
||||||
_multipleConfigReferences.Add(typeof(Code.Example.Race.Racer.RacerSettingsConfig), systemConfigsReferences.RacerSettings);
|
_multipleConfigReferences.Add(typeof(Code.Example.Race.Racer.RacerSettingsConfig), systemConfigsReferences.RacerSettings);
|
||||||
|
|
||||||
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Configs.LayerMasksConfigConfig), systemConfigsReferences.LayerMasksConfig);
|
|
||||||
|
|
||||||
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Camera.CameraSettingsConfig), systemConfigsReferences.CameraSettings);
|
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Camera.CameraSettingsConfig), systemConfigsReferences.CameraSettings);
|
||||||
|
|
||||||
|
_multipleConfigReferences.Add(typeof(Code.Infrastructure.Configs.LayerMasksConfigConfig), systemConfigsReferences.LayerMasksConfig);
|
||||||
|
|
||||||
_singleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioSourcePrefabConfig), systemConfigsReferences.AudioSourcePrefab);
|
_singleConfigReferences.Add(typeof(Code.Infrastructure.Audio.AudioSourcePrefabConfig), systemConfigsReferences.AudioSourcePrefab);
|
||||||
|
|
||||||
_singleConfigReferences.Add(typeof(Code.Infrastructure.Camera.GameCameraConfig), systemConfigsReferences.GameCamera);
|
_singleConfigReferences.Add(typeof(Code.Infrastructure.Camera.GameCameraConfig), systemConfigsReferences.GameCamera);
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
|
|
||||||
#pragma warning disable CS0105
|
#pragma warning disable CS0105
|
||||||
using Code.Example.Race.Racer;
|
using Code.Example.Race.Racer;
|
||||||
using Code.Infrastructure.Configs;
|
|
||||||
using Code.Infrastructure.Camera;
|
using Code.Infrastructure.Camera;
|
||||||
|
using Code.Infrastructure.Configs;
|
||||||
using Code.Infrastructure.Audio;
|
using Code.Infrastructure.Audio;
|
||||||
using Code.Infrastructure.Camera;
|
using Code.Infrastructure.Camera;
|
||||||
using Code.Infrastructure.UI;
|
using Code.Infrastructure.UI;
|
||||||
@@ -21,8 +21,8 @@ using Code.Infrastructure.Input;
|
|||||||
public partial class SystemConfigsReferences
|
public partial class SystemConfigsReferences
|
||||||
{
|
{
|
||||||
public string RacerSettings;
|
public string RacerSettings;
|
||||||
public string LayerMasksConfig;
|
|
||||||
public string CameraSettings;
|
public string CameraSettings;
|
||||||
|
public string LayerMasksConfig;
|
||||||
public AssetReference AudioSourcePrefab;
|
public AssetReference AudioSourcePrefab;
|
||||||
public AssetReference GameCamera;
|
public AssetReference GameCamera;
|
||||||
public AssetReference CanvasSettings;
|
public AssetReference CanvasSettings;
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
"com.annulusgames.unity-codegen": "https://github.com/AnnulusGames/UnityCodeGen.git?path=/Assets/UnityCodeGen",
|
"com.annulusgames.unity-codegen": "https://github.com/AnnulusGames/UnityCodeGen.git?path=/Assets/UnityCodeGen",
|
||||||
"com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask",
|
"com.cysharp.unitask": "https://github.com/Cysharp/UniTask.git?path=src/UniTask/Assets/Plugins/UniTask",
|
||||||
"com.gustavopsantos.reflex": "https://github.com/gustavopsantos/reflex.git?path=/Assets/Reflex/#14.1.0",
|
"com.gustavopsantos.reflex": "https://github.com/gustavopsantos/reflex.git?path=/Assets/Reflex/#14.1.0",
|
||||||
|
"com.kyrylokuzyk.primetween": "file:../Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz",
|
||||||
"com.unity.2d.sprite": "1.0.0",
|
"com.unity.2d.sprite": "1.0.0",
|
||||||
"com.unity.addressables": "2.8.0",
|
"com.unity.addressables": "2.8.0",
|
||||||
"com.unity.ai.navigation": "2.0.9",
|
"com.unity.ai.navigation": "2.0.9",
|
||||||
|
|||||||
@@ -21,6 +21,12 @@
|
|||||||
"dependencies": {},
|
"dependencies": {},
|
||||||
"hash": "a855f992ab888d2e92027dc38b4db3ab42e5f679"
|
"hash": "a855f992ab888d2e92027dc38b4db3ab42e5f679"
|
||||||
},
|
},
|
||||||
|
"com.kyrylokuzyk.primetween": {
|
||||||
|
"version": "file:../Assets/Plugins/PrimeTween/internal/com.kyrylokuzyk.primetween.tgz",
|
||||||
|
"depth": 0,
|
||||||
|
"source": "local-tarball",
|
||||||
|
"dependencies": {}
|
||||||
|
},
|
||||||
"com.unity.2d.animation": {
|
"com.unity.2d.animation": {
|
||||||
"version": "13.0.4",
|
"version": "13.0.4",
|
||||||
"depth": 1,
|
"depth": 1,
|
||||||
|
|||||||
@@ -50,8 +50,8 @@ Physics2DSettings:
|
|||||||
m_QueriesHitTriggers: 1
|
m_QueriesHitTriggers: 1
|
||||||
m_QueriesStartInColliders: 1
|
m_QueriesStartInColliders: 1
|
||||||
m_CallbacksOnDisable: 1
|
m_CallbacksOnDisable: 1
|
||||||
m_ReuseCollisionCallbacks: 0
|
m_ReuseCollisionCallbacks: 1
|
||||||
m_AutoSyncTransforms: 0
|
m_AutoSyncTransforms: 0
|
||||||
m_GizmoOptions: 10
|
m_GizmoOptions: 10
|
||||||
m_LayerCollisionMatrix: 000000000000000000000000000000000000000000000000000000000000000000000000000c000000020000000200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
m_LayerCollisionMatrix: 000000000000000000000000000000000000000000000000000000000000000000000000000c000000120000000200000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
|
||||||
m_PhysicsLowLevelSettings: {fileID: 0}
|
m_PhysicsLowLevelSettings: {fileID: 0}
|
||||||
@@ -836,24 +836,24 @@ PlayerSettings:
|
|||||||
webWasm2023: 0
|
webWasm2023: 0
|
||||||
webEnableSubmoduleStrippingCompatibility: 0
|
webEnableSubmoduleStrippingCompatibility: 0
|
||||||
scriptingDefineSymbols:
|
scriptingDefineSymbols:
|
||||||
Android: DOTWEEN
|
Android:
|
||||||
EmbeddedLinux: DOTWEEN
|
EmbeddedLinux:
|
||||||
GameCoreScarlett: DOTWEEN
|
GameCoreScarlett:
|
||||||
GameCoreXboxOne: DOTWEEN
|
GameCoreXboxOne:
|
||||||
Kepler: DOTWEEN
|
Kepler:
|
||||||
LinuxHeadlessSimulation: DOTWEEN
|
LinuxHeadlessSimulation:
|
||||||
Nintendo Switch: DOTWEEN
|
Nintendo Switch:
|
||||||
Nintendo Switch 2: DOTWEEN
|
Nintendo Switch 2:
|
||||||
PS4: DOTWEEN
|
PS4:
|
||||||
PS5: DOTWEEN
|
PS5:
|
||||||
QNX: DOTWEEN
|
QNX:
|
||||||
Standalone: DOTWEEN
|
Standalone:
|
||||||
VisionOS: DOTWEEN
|
VisionOS:
|
||||||
WebGL: DOTWEEN
|
WebGL:
|
||||||
Windows Store Apps: DOTWEEN
|
Windows Store Apps:
|
||||||
XboxOne: DOTWEEN
|
XboxOne:
|
||||||
iPhone: DOTWEEN
|
iPhone:
|
||||||
tvOS: DOTWEEN
|
tvOS:
|
||||||
additionalCompilerArguments: {}
|
additionalCompilerArguments: {}
|
||||||
platformArchitecture: {}
|
platformArchitecture: {}
|
||||||
scriptingBackend:
|
scriptingBackend:
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ TagManager:
|
|||||||
- PlatformerGround
|
- PlatformerGround
|
||||||
- PlatformerPlayer
|
- PlatformerPlayer
|
||||||
- PlatformerEntity
|
- PlatformerEntity
|
||||||
-
|
- PlatformerLogic
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
|||||||
Reference in new issue
Block a user