diff options
46 files changed, 487 insertions, 64 deletions
diff --git a/Assets/Bundle/Materials/Common.meta b/Assets/Art/Models/Characters/Default.meta index 2dc8c0c1..43499fc7 100644 --- a/Assets/Bundle/Materials/Common.meta +++ b/Assets/Art/Models/Characters/Default.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: ad166fa278dd3ad41a25aaeec66d37ab +guid: e8a40298dd4efd14c9f90a63734ca39b folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Bundle/Unit/PC/Erika/Weapons/Materials.meta b/Assets/Art/Models/Characters/Erika2.meta index be6badd6..fd7369d9 100644 --- a/Assets/Bundle/Unit/PC/Erika/Weapons/Materials.meta +++ b/Assets/Art/Models/Characters/Erika2.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 2c46a5a23283c7d428ae8bb13663ab6a +guid: 077f81003f9fc564791cce182048c2b0 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Data/RootMotionData.meta b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts.meta index 14abf402..b76e98a5 100644 --- a/Assets/Data/RootMotionData.meta +++ b/Assets/Art/Vfx/GrabSquaresEffect/AbstractWiresEffect/Scripts.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 5cfee9bde9754254f83510f88dd2a19b +guid: 20381b3eecfbfe34a9d9222868969d29 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Art/Vfx/GrabSquaresEffect/Scripts.meta b/Assets/Art/Vfx/GrabSquaresEffect/Scripts.meta new file mode 100644 index 00000000..41200932 --- /dev/null +++ b/Assets/Art/Vfx/GrabSquaresEffect/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: abff7cb61c760094f8ab9437379e0f2c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Art/Vfx/GrabSquaresEffect/Shaders.meta b/Assets/Art/Vfx/GrabSquaresEffect/Shaders.meta new file mode 100644 index 00000000..fa9e76cd --- /dev/null +++ b/Assets/Art/Vfx/GrabSquaresEffect/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e38cb65072bb4a64cbe162792de9bec2 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/Erika/Materials/Effect.meta b/Assets/Bundle/Materials/Unit/Effect.meta index 855459bb..fdf8c1db 100644 --- a/Assets/Bundle/Unit/PC/Erika/Materials/Effect.meta +++ b/Assets/Bundle/Materials/Unit/Effect.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 3ab09dc0a18f20b4ea29507887e11428 +guid: 0525fec1eb7cc94458170e9e106955d5 folderAsset: yes DefaultImporter: externalObjects: {} diff --git a/Assets/Bundle/Models.meta b/Assets/Bundle/Models.meta new file mode 100644 index 00000000..c9b5bf44 --- /dev/null +++ b/Assets/Bundle/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: adab1ca5f61452c4c90f19e7c11adf0e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Prefabs.meta b/Assets/Bundle/Prefabs.meta new file mode 100644 index 00000000..82588fb1 --- /dev/null +++ b/Assets/Bundle/Prefabs.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dac6442cad7539149a7527510665d510 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Scenes/Demo/AnimationEditScene.unity b/Assets/Bundle/Scenes/Demo/AnimationEditScene.unity index 3341759e..2411e846 100644 --- a/Assets/Bundle/Scenes/Demo/AnimationEditScene.unity +++ b/Assets/Bundle/Scenes/Demo/AnimationEditScene.unity @@ -38,7 +38,7 @@ RenderSettings: m_ReflectionIntensity: 1 m_CustomReflection: {fileID: 0} m_Sun: {fileID: 0} - m_IndirectSpecularColor: {r: 0.18028334, g: 0.22571328, b: 0.3069217, a: 1} + m_IndirectSpecularColor: {r: 0.18028378, g: 0.22571412, b: 0.30692285, a: 1} m_UseRadianceAmbientProbe: 0 --- !u!157 &3 LightmapSettings: @@ -57576,6 +57576,101 @@ Transform: m_Father: {fileID: 0} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0} +--- !u!1001 &585978178 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 6928033330946439154, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_Name + value: Erika_Robot_Snapshot + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalPosition.x + value: 3.54 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalPosition.y + value: 3.34 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalPosition.z + value: -12.52 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_RootOrder + value: 11 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 6930345995811640846, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: + - {fileID: 5696818452860696233, guid: 24a1c73fccb426e4f962d12c92993aac, type: 3} + m_SourcePrefab: {fileID: 100100000, guid: 24a1c73fccb426e4f962d12c92993aac, type: 3} +--- !u!1 &585978179 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 6928033330946439154, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + m_PrefabInstance: {fileID: 585978178} + m_PrefabAsset: {fileID: 0} +--- !u!95 &585978180 stripped +Animator: + m_CorrespondingSourceObject: {fileID: 7023111129766813114, guid: 24a1c73fccb426e4f962d12c92993aac, + type: 3} + m_PrefabInstance: {fileID: 585978178} + m_PrefabAsset: {fileID: 0} +--- !u!114 &585978181 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 585978179} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d63b30ef896f0a548865db54d2bdbbeb, type: 3} + m_Name: + m_EditorClassIdentifier: + animator: {fileID: 585978180} --- !u!1 &659412353 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Bundle/Shaders/Unit/Effect.meta b/Assets/Bundle/Shaders/Unit/Effect.meta new file mode 100644 index 00000000..7df9a033 --- /dev/null +++ b/Assets/Bundle/Shaders/Unit/Effect.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 9cc4684b9f432f149b16a51f148c9490 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/UI.meta b/Assets/Bundle/UI.meta new file mode 100644 index 00000000..0914914c --- /dev/null +++ b/Assets/Bundle/UI.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4392471259b05a74a82a4bc72b510eb1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/Monster/Robots_Prowler/ActionData.meta b/Assets/Bundle/Unit/Monster/Robots_Prowler/ActionData.meta new file mode 100644 index 00000000..ca7266b0 --- /dev/null +++ b/Assets/Bundle/Unit/Monster/Robots_Prowler/ActionData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: a1d7b6e0d8fb1a642a65011fb6cd7d89 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/Monster/Robots_Prowler/UnitData.meta b/Assets/Bundle/Unit/Monster/Robots_Prowler/UnitData.meta new file mode 100644 index 00000000..142f5872 --- /dev/null +++ b/Assets/Bundle/Unit/Monster/Robots_Prowler/UnitData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 6ad7401709700f34db2b795830937d76 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/NPC.meta b/Assets/Bundle/Unit/NPC.meta new file mode 100644 index 00000000..eeea13e1 --- /dev/null +++ b/Assets/Bundle/Unit/NPC.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 8ced034d375cdfa488814663ea17a79b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/Erika/Materials/Normal.meta b/Assets/Bundle/Unit/PC/Erika/Materials/Normal.meta new file mode 100644 index 00000000..8c41a6b2 --- /dev/null +++ b/Assets/Bundle/Unit/PC/Erika/Materials/Normal.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5dc1b71affc68b54594096a1b96a5c00 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/Erika/Models.meta b/Assets/Bundle/Unit/PC/Erika/Models.meta new file mode 100644 index 00000000..11148d17 --- /dev/null +++ b/Assets/Bundle/Unit/PC/Erika/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 0d712421d808a43438a43d8a5d34effe +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/Erika/UnitData.meta b/Assets/Bundle/Unit/PC/Erika/UnitData.meta new file mode 100644 index 00000000..7d4b13eb --- /dev/null +++ b/Assets/Bundle/Unit/PC/Erika/UnitData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 922befa8a94692845b88500a23229d7f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/ActionData.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/ActionData.meta new file mode 100644 index 00000000..f5434a00 --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/ActionData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 07c3b2bf6cb8cc2498422bbb105cbad8 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationClip.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationClip.meta new file mode 100644 index 00000000..4ed2c938 --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationClip.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 827d77abe87680a47ae2d71a9e953a18 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationData.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationData.meta new file mode 100644 index 00000000..43a52cd1 --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/AnimationData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7a2b72fbb41383047ac45e6c22ea9663 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/AfterImage.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/AfterImage.meta new file mode 100644 index 00000000..85d58a8c --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/AfterImage.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b2b0838fb0603964e99904eefe81ad7f +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/Normal.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/Normal.meta new file mode 100644 index 00000000..dd867045 --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/Materials/Normal.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1c8a678ea9e801f439a1003d04f33cf5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/Models.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/Models.meta new file mode 100644 index 00000000..dc530723 --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/Models.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ebf636c7cf7b1934b885298ce1f5f42e +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/RootMotion.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/RootMotion.meta new file mode 100644 index 00000000..b28b6f04 --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/RootMotion.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 2022e8298d3a8624992143eb57c0f8ac +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/UnitData.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/UnitData.meta new file mode 100644 index 00000000..eeca0d3b --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/UnitData.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f6aa859c834c51f498ef0b3c3b83a0f5 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/PC/ErikaCyborg/Weapons.meta b/Assets/Bundle/Unit/PC/ErikaCyborg/Weapons.meta new file mode 100644 index 00000000..7f91da28 --- /dev/null +++ b/Assets/Bundle/Unit/PC/ErikaCyborg/Weapons.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: df69962f5b01e444a8bea87e31c7d0a4 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Bundle/Unit/Prop.meta b/Assets/Bundle/Unit/Prop.meta new file mode 100644 index 00000000..affd6eed --- /dev/null +++ b/Assets/Bundle/Unit/Prop.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: dafc173db1ebeab4c80641cc3d4fa528 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Curve3D.meta b/Assets/Scripts/Curve3D.meta new file mode 100644 index 00000000..fef1c5e7 --- /dev/null +++ b/Assets/Scripts/Curve3D.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ad8b718b6b700d8419838dad07158567 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Drone.meta b/Assets/Scripts/Drone.meta new file mode 100644 index 00000000..694cff70 --- /dev/null +++ b/Assets/Scripts/Drone.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: ec3412151f8a72a41b2ed21316763399 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Managers/Physics.meta b/Assets/Scripts/Managers/Physics.meta new file mode 100644 index 00000000..2296b3f8 --- /dev/null +++ b/Assets/Scripts/Managers/Physics.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 603d4624aaedd794cb89497954a83f4a +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Managers/UnitManager.cs b/Assets/Scripts/Managers/UnitManager.cs index 62afc08b..0561abd0 100644 --- a/Assets/Scripts/Managers/UnitManager.cs +++ b/Assets/Scripts/Managers/UnitManager.cs @@ -6,11 +6,51 @@ public class UnitManager : Singleton<UnitManager> {
public PCController pc { get; private set; }
- public List<MonsterController> monsters { get; private set; }
+ public List<MonsterController> monsters { get; private set; }
+ private Dictionary<UnitController, List<UnitSnapshot>> m_Snapshots = new Dictionary<UnitController, List<UnitSnapshot>>();
public void SetPlayerCharacter(PCController pc)
{
this.pc = pc;
}
+
+ public UnitSnapshot ClaimSnapshotSolo(UnitSnapshotInfo info)
+ {
+ UnitSnapshot snapshot = ClaimSnapshot(info.unit);
+ snapshot.ApplySnapshot(info);
+ return snapshot;
+ }
+
+ public UnitSnapshot ClaimSnapshot(UnitController unit)
+ {
+ List<UnitSnapshot> snapshots;
+ UnitSnapshot snap = null;
+ if (m_Snapshots.TryGetValue(unit, out snapshots))
+ {
+ snap = snapshots[snapshots.Count - 1];
+ snapshots.RemoveAt(snapshots.Count - 1);
+ return snap;
+ }
+ var obj = ResourceManager.Instance.LoadAsset<UnitSnapshot>(unit.unitDetail.snapshotAvatarPath);
+ if(obj)
+ {
+ snap = Object.Instantiate<UnitSnapshot>(obj);
+ snap.owner = unit;
+ }
+ return snap;
+ }
+
+ public void ReleaseSnapshot(ref UnitSnapshot snap)
+ {
+ List<UnitSnapshot> snapshots;
+ if (!m_Snapshots.TryGetValue(snap.owner, out snapshots))
+ {
+ snapshots = new List<UnitSnapshot>();
+ m_Snapshots.Add(snap.owner, snapshots);
+ }
+ snapshots.Add(snap);
+ snap = null;
+ }
+
}
diff --git a/Assets/Scripts/Props.meta b/Assets/Scripts/Props.meta new file mode 100644 index 00000000..bb96602e --- /dev/null +++ b/Assets/Scripts/Props.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f299520ed9fcf4a45858ad4ef5a8d5d1 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Robot.meta b/Assets/Scripts/Robot.meta new file mode 100644 index 00000000..0b5a087e --- /dev/null +++ b/Assets/Scripts/Robot.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7c09ca1609552d24bbe697d1516f8aa9 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Scene.meta b/Assets/Scripts/Scene.meta deleted file mode 100644 index eb7a8716..00000000 --- a/Assets/Scripts/Scene.meta +++ /dev/null @@ -1,8 +0,0 @@ -fileFormatVersion: 2 -guid: eaee2d0f48cff9b40baf0686a8105600 -folderAsset: yes -DefaultImporter: - externalObjects: {} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/Scripts/Unit/AI/Actions.meta b/Assets/Scripts/Unit/AI/Actions.meta new file mode 100644 index 00000000..9b4ad463 --- /dev/null +++ b/Assets/Scripts/Unit/AI/Actions.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 971e9d55b8bc0894eb6a110fb962000b +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/AI/Conditionals.meta b/Assets/Scripts/Unit/AI/Conditionals.meta new file mode 100644 index 00000000..70a86da5 --- /dev/null +++ b/Assets/Scripts/Unit/AI/Conditionals.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 85b7e0c7ed1d12f42a5178bfbf3d934c +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Unit/AfterImage/UnitSnapshot.cs b/Assets/Scripts/Unit/AfterImage/UnitSnapshot.cs deleted file mode 100644 index 8935293a..00000000 --- a/Assets/Scripts/Unit/AfterImage/UnitSnapshot.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System.Collections; -using System.Collections.Generic; -using UnityEngine; - -// 保存当前角色的快照 -public struct UnitSnapshot -{ - public UnitController unit; - - public int curAnimState { get; private set; } - - public float normalizedTime; - -}
\ No newline at end of file diff --git a/Assets/Scripts/Unit/Components/UnitLensEffect.cs b/Assets/Scripts/Unit/Components/UnitLensEffect.cs index f9d22a85..5a68faf8 100644 --- a/Assets/Scripts/Unit/Components/UnitLensEffect.cs +++ b/Assets/Scripts/Unit/Components/UnitLensEffect.cs @@ -99,6 +99,8 @@ public class UnitLensEffect : UnitComponent continue;
eff.owner = owner;
method.Invoke(eff, new object[] { LensEffectBase.EStage.Before, cb.Value });
+
+ // iterate unit renderers
for (int j = 0; j < body.renderers.Length; ++j)
{
var renderer = body.renderers[j];
@@ -107,6 +109,7 @@ public class UnitLensEffect : UnitComponent eff.curBodypartRenderer = renderer;
method.Invoke(eff, new object[] { LensEffectBase.EStage.Iterate, cb.Value });
}
+
method.Invoke(eff, new object[] { LensEffectBase.EStage.After, cb.Value });
} MainCamera.Instance.camera.AddCommandBuffer(ce, cb.Value); diff --git a/Assets/Scripts/Unit/Controller/UnitController.cs b/Assets/Scripts/Unit/Controller/UnitController.cs index 3b4ab12d..34490feb 100644 --- a/Assets/Scripts/Unit/Controller/UnitController.cs +++ b/Assets/Scripts/Unit/Controller/UnitController.cs @@ -228,5 +228,14 @@ public class UnitController : MonoBehaviour/*, Interactable*/ transform.position = pos;
}
-}
+ // 生成当前的快照
+ public UnitSnapshotInfo TakeSnapshot()
+ {
+ UnitSnapshotInfo snapshot = new UnitSnapshotInfo();
+ snapshot.unit = this;
+ snapshot.animStateHash = unitAnimation.baseLayer.stateHash;
+ snapshot.normalizedTime = unitAnimation.baseLayer.playbackNormalizedTime;
+ return snapshot;
+ }
+}
\ No newline at end of file diff --git a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs index 9111bd68..24a62264 100644 --- a/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs +++ b/Assets/Scripts/Unit/LensEffect/LensEffect_Dash.cs @@ -10,13 +10,16 @@ public class LensEffect_Dash : LensEffectBase Color rimColor; int tempID; float lifeTime; - UnitSnapshot snapshot; - - public LensEffect_Dash(Color color, float lifeTime) : base() + UnitSnapshot snapshot; + TRS trs;
+
+ public LensEffect_Dash(TRS trs, Color color, float lifeTime, UnitSnapshotInfo snapshot) : base() { rimColor = color; tempID = Shader.PropertyToID("_BlurRim_RT0"); this.lifeTime = lifeTime; + this.snapshot = UnitManager.Instance.ClaimSnapshotSolo(snapshot); + this.trs = trs; } public override void AfterForwardOpaque(EStage stage, CommandBuffer cb) @@ -25,10 +28,6 @@ public class LensEffect_Dash : LensEffectBase { Before(cb); } - else if (stage == EStage.Iterate) - { - Iterate(cb); - } else if (stage == EStage.After) { After(cb); @@ -43,36 +42,9 @@ public class LensEffect_Dash : LensEffectBase cb.GetTemporaryRT(tempID, -1, -1, 24, FilterMode.Bilinear); cb.SetRenderTarget(tempID); cb.ClearRenderTarget(true, true, new Color(0, 0, 0, 0)); - } - void Iterate(CommandBuffer cb) - { - Matrix4x4 obj2Wod = Matrix4x4.identity; - int subMeshCount = 0; - if (curBodypartRenderer.renderer is SkinnedMeshRenderer) - { - SkinnedMeshRenderer smr = curBodypartRenderer.renderer as SkinnedMeshRenderer; - Vector3 pos = smr.rootBone.transform.position; - Quaternion rot = smr.rootBone.transform.rotation; - obj2Wod = MatrixUtility.RotateAndTranslate(pos, rot); - obj2Wod = Matrix4x4.Translate(new Vector3(1, 0, 0)) * obj2Wod; - subMeshCount = smr.sharedMesh.subMeshCount; - } - else if (curBodypartRenderer.renderer is MeshRenderer) - { - obj2Wod = curBodypartRenderer.renderer.transform.localToWorldMatrix; - obj2Wod = Matrix4x4.Translate(new Vector3(1, 0, 0)) * obj2Wod; - subMeshCount = curBodypartRenderer.renderer.GetComponent<MeshFilter>().sharedMesh.subMeshCount; - } + // renderer - for (int i = 0; i < subMeshCount; ++i) - { - MaterialEntry mat = ClaimMaterial(StaticDefine.shaders[EShader.SolidColor].name); - mat.material.SetColor("_Color", rimColor); - mat.material.SetMatrix("_ObjectToWorld", obj2Wod); - mat.material.SetTexture("_MainTex", curBodypartRenderer.renderer.sharedMaterial.GetTexture("_MainTex")); - cb.DrawRenderer(curBodypartRenderer.renderer, mat.material, i); - } } void After(CommandBuffer cb) diff --git a/Assets/Scripts/Unit/UnitSnapshot.cs b/Assets/Scripts/Unit/UnitSnapshot.cs new file mode 100644 index 00000000..0515bf6f --- /dev/null +++ b/Assets/Scripts/Unit/UnitSnapshot.cs @@ -0,0 +1,36 @@ +using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+ +// 保存当前角色的快照 +public struct UnitSnapshotInfo +{
+ public UnitController unit;
+
+ public int animStateHash;
+
+ public float normalizedTime;
+
+ public TRS trs;
+
+}
+
+// 角色快照,用于lens effect
+public class UnitSnapshot : MonoBehaviour
+{
+ public UnitController owner;
+ public Animator animator;
+
+ public void Initialize(UnitController prototype)
+ {
+ animator.runtimeAnimatorController = prototype.unitAnimation.animator.runtimeAnimatorController;
+ }
+
+ public void ApplySnapshot(UnitSnapshotInfo info)
+ {
+ animator.Play(info.animStateHash, 0, info.normalizedTime);
+ animator.speed = 0.02f;
+ animator.Update(1 / 60f);
+ }
+
+}
\ No newline at end of file diff --git a/Assets/Scripts/Unit/AfterImage/UnitSnapshot.cs.meta b/Assets/Scripts/Unit/UnitSnapshot.cs.meta index 31c837aa..31c837aa 100644 --- a/Assets/Scripts/Unit/AfterImage/UnitSnapshot.cs.meta +++ b/Assets/Scripts/Unit/UnitSnapshot.cs.meta diff --git a/Assets/Scripts/Utils/ActiveGroup.cs b/Assets/Scripts/Utils/ActiveGroup.cs new file mode 100644 index 00000000..bae3a39d --- /dev/null +++ b/Assets/Scripts/Utils/ActiveGroup.cs @@ -0,0 +1,20 @@ +using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public class ActiveGroup : MonoBehaviour
+{
+ public Object[] members;
+
+ public bool active
+ {
+ get
+ {
+ return true;
+ }
+ set
+ {
+ }
+ }
+
+}
diff --git a/Assets/Scripts/Utils/ActiveGroup.cs.meta b/Assets/Scripts/Utils/ActiveGroup.cs.meta new file mode 100644 index 00000000..3ccf34ba --- /dev/null +++ b/Assets/Scripts/Utils/ActiveGroup.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 6391395616b3b234a8dc72ea67aaa400 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Utils/TRS.cs b/Assets/Scripts/Utils/TRS.cs new file mode 100644 index 00000000..f5d6f559 --- /dev/null +++ b/Assets/Scripts/Utils/TRS.cs @@ -0,0 +1,16 @@ +using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+public struct TRS
+{
+ public Vector3 position;
+ public Quaternion rotation;
+ public Vector3 scale;
+ public TRS(Vector3 pos, Quaternion rot, Vector3 sc)
+ {
+ position = pos;
+ rotation = rot;
+ scale = sc;
+ }
+}
diff --git a/Assets/Scripts/Utils/TRS.cs.meta b/Assets/Scripts/Utils/TRS.cs.meta new file mode 100644 index 00000000..f4d46a93 --- /dev/null +++ b/Assets/Scripts/Utils/TRS.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: c2ec12b0e2046b84eac06e01b02937e9 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: |