summaryrefslogtreecommitdiff
path: root/Assets/Scripts/Effects
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/Scripts/Effects')
-rw-r--r--Assets/Scripts/Effects/AfterImage.meta8
-rw-r--r--Assets/Scripts/Effects/AfterImage/AfterImage.cs73
-rw-r--r--Assets/Scripts/Effects/AfterImage/AfterImage.cs.meta11
-rw-r--r--Assets/Scripts/Effects/AfterImage/AfterImagePool.cs78
-rw-r--r--Assets/Scripts/Effects/AfterImage/AfterImagePool.cs.meta11
-rw-r--r--Assets/Scripts/Effects/AfterImageEffects.cs186
-rw-r--r--Assets/Scripts/Effects/AfterImageEffects.cs.meta11
-rw-r--r--Assets/Scripts/Effects/CharacterGhostEffect.cs127
-rw-r--r--Assets/Scripts/Effects/CharacterGhostEffect.cs.meta11
-rw-r--r--Assets/Scripts/Effects/Effect.cs30
-rw-r--r--Assets/Scripts/Effects/Effect.cs.meta11
-rw-r--r--Assets/Scripts/Effects/EffectHandler.cs18
-rw-r--r--Assets/Scripts/Effects/EffectHandler.cs.meta11
-rw-r--r--Assets/Scripts/Effects/EffectsManager.cs73
-rw-r--r--Assets/Scripts/Effects/EffectsManager.cs.meta11
-rw-r--r--Assets/Scripts/Effects/FxClear.cs167
-rw-r--r--Assets/Scripts/Effects/FxClear.cs.meta11
-rw-r--r--Assets/Scripts/Effects/HairAssignMaterials.cs26
-rw-r--r--Assets/Scripts/Effects/HairAssignMaterials.cs.meta11
-rw-r--r--Assets/Scripts/Effects/ShurikenBakedMeshEmitter.cs124
-rw-r--r--Assets/Scripts/Effects/ShurikenBakedMeshEmitter.cs.meta11
-rw-r--r--Assets/Scripts/Effects/Spark.cs36
-rw-r--r--Assets/Scripts/Effects/Spark.cs.meta11
-rw-r--r--Assets/Scripts/Effects/SparksManager.cs91
-rw-r--r--Assets/Scripts/Effects/SparksManager.cs.meta11
25 files changed, 0 insertions, 1169 deletions
diff --git a/Assets/Scripts/Effects/AfterImage.meta b/Assets/Scripts/Effects/AfterImage.meta
deleted file mode 100644
index 4d4c324a..00000000
--- a/Assets/Scripts/Effects/AfterImage.meta
+++ /dev/null
@@ -1,8 +0,0 @@
-fileFormatVersion: 2
-guid: d16ac0401b1e91a4fa81ceec42b004d8
-folderAsset: yes
-DefaultImporter:
- externalObjects: {}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/AfterImage/AfterImage.cs b/Assets/Scripts/Effects/AfterImage/AfterImage.cs
deleted file mode 100644
index 7f40e119..00000000
--- a/Assets/Scripts/Effects/AfterImage/AfterImage.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class AfterImage : MonoBehaviour
-{
- public Animator myAnimator;
- //public CharacterControl myCharacterControl;
- public Renderer[] myRenderers;
-
- public Animator targetAnimator;
- public GameObject targetObject;
-
- public float time;
- public float intensity;
- public float pow;
- public float timeMax = 45;
-
- public bool active;
-
- // Use this for initialization
- void Start()
- {
- //targetObject =
- }
-
- // Update is called once per frame
- void Update()
- {
- if (time > 0)
- {
- time--;
- active = true;
- intensity = (time / timeMax) * 10 * pow;
- UpdateRenderer();
- }
- else
- {
- active = false;
- intensity = 0;
- this.transform.gameObject.SetActive(false);
- }
- }
-
- void UpdateRenderer()
- {
- foreach(var renderer in myRenderers)
- {
- for(int i = 0;i < renderer.materials.Length; ++i)
- {
- renderer.materials[i].SetFloat("_Intensity", intensity);
- renderer.materials[i].SetFloat("_MKGlowPower", intensity);
- }
- }
- }
-
- public void Activate()
- {
- active = true;
- transform.position = targetObject.transform.position;
- transform.localScale = targetObject.transform.lossyScale;
- transform.rotation = targetObject.transform.rotation;
- transform.gameObject.SetActive(true);
-
- myAnimator.Play(targetAnimator.GetCurrentAnimatorStateInfo(0).shortNameHash, 0, targetAnimator.GetCurrentAnimatorStateInfo(0).normalizedTime);
-
- myAnimator.speed = 0.02f;
- myAnimator.Update(1/60f);
- time = timeMax + 1;
- Update();
- }
-
-} \ No newline at end of file
diff --git a/Assets/Scripts/Effects/AfterImage/AfterImage.cs.meta b/Assets/Scripts/Effects/AfterImage/AfterImage.cs.meta
deleted file mode 100644
index cd1fd19a..00000000
--- a/Assets/Scripts/Effects/AfterImage/AfterImage.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 5912e1e5f1e32ea429bf6a9ec2d11a0f
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs b/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs
deleted file mode 100644
index 38d3488d..00000000
--- a/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs
+++ /dev/null
@@ -1,78 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class AfterImagePool : MonoBehaviour
-{
- public static AfterImagePool Instance;
-
- //public CharacterControl myCharacterControl;
- public GameObject targetObject; //Set these manually to the character object you're copying
- public Animator targetAnimator; //Set these manually to the character object you're copying
- public GameObject prefab; //This is the prefab you made in the scene. It's a parent transform with an animator and AfterImage script on it, with Armature and SkinnedMeshRenderer children
- public int poolSize = 10;
- public List<AfterImage> afterImages;
-
- public int interval = 10;
-
- public int time = 0;
-
- private bool isActive = false;
-
- // Use this for initialization
- void Start()
- {
- afterImages = new List<AfterImage>(poolSize);
- for (int i = 0; i < poolSize; i++)
- {
- GameObject nextAfterImage = Instantiate(prefab);
- nextAfterImage.transform.SetParent(this.transform);
-
- nextAfterImage.GetComponent<AfterImage>().targetObject = targetObject; //Game Object Target
- nextAfterImage.GetComponent<AfterImage>().targetAnimator = targetAnimator; //Animator Target
-
- nextAfterImage.SetActive(false);
-
- afterImages.Add(nextAfterImage.GetComponent<AfterImage>());
- }
- Instance = this;
- }
-
- // Update is called once per frame
- void Update()
- {
- if (!isActive)
- return;
-
- time++;
- if (time >= interval)
- {
- time = 0;
- AddAfterImage();
- }
- }
-
- void AddAfterImage()
- {
- for (int i = 0; i < poolSize; i++)
- {
- if (!afterImages[i].active)
- {
- afterImages[i].Activate();
- break;
- }
- }
- }
-
- public void Activate(bool isActive)
- {
- this.isActive = isActive;
- time = isActive ? interval : 0;
- }
-
- public void SetInterval(int interval)
- {
- this.interval = interval;
- }
-
-} \ No newline at end of file
diff --git a/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs.meta b/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs.meta
deleted file mode 100644
index 78d84907..00000000
--- a/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 4aaea939b0abb3c4eb78963aedf4b2f3
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/AfterImageEffects.cs b/Assets/Scripts/Effects/AfterImageEffects.cs
deleted file mode 100644
index e6dd57e7..00000000
--- a/Assets/Scripts/Effects/AfterImageEffects.cs
+++ /dev/null
@@ -1,186 +0,0 @@
-// using UnityEngine;
-//using System.Collections;
-//using System.Collections.Generic;
-///// <summary>
-///// 残影特效
-///// </summary>
-//public class AfterImageEffects : MonoBehaviour
-//{
-
-// public Material[] materials = new Material[8];
-
-// //开启残影
-// public bool _OpenAfterImage;
-
-// //残影颜色
-// public Color _AfterImageColor = Color.black;
-// //残影的生存时间
-// public float _SurvivalTime = 1;
-// //生成残影的间隔时间
-// public float _IntervalTime = 0.2f;
-// private float _Time = 0;
-// //残影初始透明度
-// [Range(0.1f, 1.0f)]
-// public float _InitialAlpha = 1.0f;
-
-// private List<AfterImage> _AfterImageList;
-// private SkinnedMeshRenderer _SkinnedMeshRenderer;
-
-// void Awake()
-// {
-// _AfterImageList = new List<AfterImage>();
-// _SkinnedMeshRenderer = GetComponent<SkinnedMeshRenderer>();
-// }
-// void Update()
-// {
-// if (_OpenAfterImage && _AfterImageList != null)
-// {
-// if (_SkinnedMeshRenderer == null)
-// {
-// _OpenAfterImage = false;
-// return;
-// }
-
-// _Time += Time.deltaTime;
-// //生成残影
-// CreateAfterImage();
-// //刷新残影
-// UpdateAfterImage();
-// }
-// }
-// /// <summary>
-// /// 生成残影
-// /// </summary>
-// void CreateAfterImage()
-// {
-// //生成残影
-// if (_Time >= _IntervalTime)
-// {
-// _Time = 0;
-
-// Mesh mesh = new Mesh();
-// _SkinnedMeshRenderer.BakeMesh(mesh);
-
-// Material material = new Material(_SkinnedMeshRenderer.material);
-// // SetMaterialRenderingMode(material, RenderingMode.Fade);
-
-// _AfterImageList.Add(new AfterImage(
-// mesh,
-// material,
-// transform.localToWorldMatrix,
-// _InitialAlpha,
-// Time.realtimeSinceStartup,
-// _SurvivalTime));
-// }
-// }
-// /// <summary>
-// /// 刷新残影
-// /// </summary>
-// void UpdateAfterImage()
-// {
-// //刷新残影,根据生存时间销毁已过时的残影
-// for (int i = 0; i < _AfterImageList.Count; i++)
-// {
-// float _PassingTime = Time.realtimeSinceStartup - _AfterImageList[i]._StartTime;
-
-// if (_PassingTime > _AfterImageList[i]._Duration)
-// {
-// _AfterImageList.Remove(_AfterImageList[i]);
-// Destroy(_AfterImageList[i]);
-// continue;
-// }
-
-// if (_AfterImageList[i]._Material.HasProperty("_Color"))
-// {
-// _AfterImageList[i]._Alpha *= (1 - _PassingTime / _AfterImageList[i]._Duration);
-// _AfterImageColor.a = _AfterImageList[i]._Alpha;
-// // _AfterImageList[i]._Material.SetColor("_Color", _AfterImageColor);
-// }
-
-// // 绘制submesh
-// for(int j = 0; j < _AfterImageList[i]._Mesh.subMeshCount; ++j)
-// {
-// if (j >= 4) continue;
-// Graphics.DrawMesh(_AfterImageList[i]._Mesh, _AfterImageList[i]._Matrix, /*_AfterImageList[i]._Material*/materials[j], gameObject.layer, null, j);
-// }
-// }
-// }
-// /// <summary>
-// /// 设置纹理渲染模式
-// /// </summary>
-// void SetMaterialRenderingMode(Material material, RenderingMode renderingMode)
-// {
-// switch (renderingMode)
-// {
-// case RenderingMode.Opaque:
-// material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
-// material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
-// material.SetInt("_ZWrite", 1);
-// material.DisableKeyword("_ALPHATEST_ON");
-// material.DisableKeyword("_ALPHABLEND_ON");
-// material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
-// material.renderQueue = -1;
-// break;
-// case RenderingMode.Cutout:
-// material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
-// material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.Zero);
-// material.SetInt("_ZWrite", 1);
-// material.EnableKeyword("_ALPHATEST_ON");
-// material.DisableKeyword("_ALPHABLEND_ON");
-// material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
-// material.renderQueue = 2450;
-// break;
-// case RenderingMode.Fade:
-// material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.SrcAlpha);
-// material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
-// material.SetInt("_ZWrite", 0);
-// material.DisableKeyword("_ALPHATEST_ON");
-// material.EnableKeyword("_ALPHABLEND_ON");
-// material.DisableKeyword("_ALPHAPREMULTIPLY_ON");
-// material.renderQueue = 3000;
-// break;
-// case RenderingMode.Transparent:
-// material.SetInt("_SrcBlend", (int)UnityEngine.Rendering.BlendMode.One);
-// material.SetInt("_DstBlend", (int)UnityEngine.Rendering.BlendMode.OneMinusSrcAlpha);
-// material.SetInt("_ZWrite", 0);
-// material.DisableKeyword("_ALPHATEST_ON");
-// material.DisableKeyword("_ALPHABLEND_ON");
-// material.EnableKeyword("_ALPHAPREMULTIPLY_ON");
-// material.renderQueue = 3000;
-// break;
-// }
-// }
-//}
-//public enum RenderingMode
-//{
-// Opaque,
-// Cutout,
-// Fade,
-// Transparent,
-//}
-//class AfterImage : Object
-//{
-// //残影网格
-// public Mesh _Mesh;
-// //残影纹理
-// public Material _Material;
-// //残影位置
-// public Matrix4x4 _Matrix;
-// //残影透明度
-// public float _Alpha;
-// //残影启动时间
-// public float _StartTime;
-// //残影保留时间
-// public float _Duration;
-
-// public AfterImage(Mesh mesh, Material material, Matrix4x4 matrix4x4, float alpha, float startTime, float duration)
-// {
-// _Mesh = mesh;
-// _Material = material;
-// _Matrix = matrix4x4;
-// _Alpha = alpha;
-// _StartTime = startTime;
-// _Duration = duration;
-// }
-
-//} \ No newline at end of file
diff --git a/Assets/Scripts/Effects/AfterImageEffects.cs.meta b/Assets/Scripts/Effects/AfterImageEffects.cs.meta
deleted file mode 100644
index f2bd3581..00000000
--- a/Assets/Scripts/Effects/AfterImageEffects.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 3f9a1194f9a331f41b8f32865ba192bb
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/CharacterGhostEffect.cs b/Assets/Scripts/Effects/CharacterGhostEffect.cs
deleted file mode 100644
index d422c0a7..00000000
--- a/Assets/Scripts/Effects/CharacterGhostEffect.cs
+++ /dev/null
@@ -1,127 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class CharacterGhostEffect : EffectHandler
-{
- [Tooltip("目标skinMeshRenderer")]
- public SkinnedMeshRenderer m_Renderer;
-
- [Tooltip("如果mesh包含多个submesh,需要每个submesh单独设置一个材质")]
- public Material[] Materials;
-
- [Tooltip("Submesh是否使用同一个材质")]
- public bool SubmeshShareMaterial;
-
- [Tooltip("使用范围内的submesh")]
- public bool UseRangedSubmesh;
-
- [Tooltip("Submesh索引范围")]
- public Vector2Int SubmeshRange;
-
- [Tooltip("是否开启残影效果")]
- public bool IsEnable;
-
- [Tooltip("残影生成的时间间隔")]
- public float Interval = 0.1f;
-
- [Tooltip("残影的生存时间")]
- public float LifeTime = 0.5f;
-
- private float m_Time = 0;
- private List<GhostSnapshot> m_Ghosts = new List<GhostSnapshot>();
-
- void Update()
- {
- //if (!IsEnable)
- //{
- // if (m_Ghosts.Count > 0)
- // UpdateGhost(); // destroy ghosts
- // return;
- //}
-
- if (m_Ghosts == null || m_Renderer == null || Materials == null || Materials.Length == 0)
- {
- IsEnable = false;
- return;
- }
-
- m_Time += Time.deltaTime;
-
- //if(IsEnable)
- // CreateGhost();
-
- UpdateGhost();
- DrawGhost();
- }
-
- public void CreateGhost()
- {
- if(m_Time >= Interval)
- {
- m_Time -= Interval;
-
- Mesh mesh = new Mesh();
- m_Renderer.BakeMesh(mesh);
-
- Matrix4x4 mat = m_Renderer.localToWorldMatrix;
-
- m_Ghosts.Add(new GhostSnapshot(mesh, mat, Time.realtimeSinceStartup, LifeTime));
- }
- }
-
- void UpdateGhost()
- {
- for(int i = m_Ghosts.Count - 1; i >= 0 ; --i)
- {
- GhostSnapshot ghost = m_Ghosts[i];
- float passTime = Time.realtimeSinceStartup - ghost.startTime;
-
- if (passTime > ghost.lifeTime)
- {
- m_Ghosts.Remove(ghost);
- Destroy(ghost);
- continue;
- }
- }
- }
-
- void DrawGhost()
- {
- for(int i = 0; i < m_Ghosts.Count; ++ i)
- {
- GhostSnapshot ghost = m_Ghosts[i];
- int start = 0, end = ghost.mesh.subMeshCount - 1;
- if(UseRangedSubmesh)
- {
- start = SubmeshRange.x;
- end = SubmeshRange.y;
- }
- for (int j = start; j <= end; ++j)
- {
- Material material;
- if (SubmeshShareMaterial)
- material = Materials[0];
- else
- material = Materials[j - start];
- Graphics.DrawMesh(ghost.mesh, ghost.matrix, material, gameObject.layer, null, j);
- }
- }
- }
-}
-
-class GhostSnapshot : Object
-{
- public Mesh mesh;
- public Matrix4x4 matrix;
- public float startTime;
- public float lifeTime;
-
- public GhostSnapshot(Mesh mesh, Matrix4x4 mat, float startTime, float lifeTime)
- {
- this.mesh = mesh;
- this.matrix = mat;
- this.startTime = startTime;
- this.lifeTime = lifeTime;
- }
-}
diff --git a/Assets/Scripts/Effects/CharacterGhostEffect.cs.meta b/Assets/Scripts/Effects/CharacterGhostEffect.cs.meta
deleted file mode 100644
index 9a1f3a3a..00000000
--- a/Assets/Scripts/Effects/CharacterGhostEffect.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 76b355b49906df24cac5ccfb0de69331
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/Effect.cs b/Assets/Scripts/Effects/Effect.cs
deleted file mode 100644
index a8f0d37f..00000000
--- a/Assets/Scripts/Effects/Effect.cs
+++ /dev/null
@@ -1,30 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class Effect : MonoBehaviour
-{
- public string Name;
- public float LifeTime;
-
- private float time;
-
- private void Awake()
- {
- }
-
- private void OnEnable()
- {
- time = 0;
- }
-
- private void Update()
- {
- time += Time.deltaTime;
- if(time > LifeTime)
- {
- EffectsManager.Instance.CycleEffect(this);
- }
- }
-
-}
diff --git a/Assets/Scripts/Effects/Effect.cs.meta b/Assets/Scripts/Effects/Effect.cs.meta
deleted file mode 100644
index ea99b00a..00000000
--- a/Assets/Scripts/Effects/Effect.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: a0f48b3d527ef6c49999e8a4b9892cd9
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/EffectHandler.cs b/Assets/Scripts/Effects/EffectHandler.cs
deleted file mode 100644
index 265a1001..00000000
--- a/Assets/Scripts/Effects/EffectHandler.cs
+++ /dev/null
@@ -1,18 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class EffectHandler : MonoBehaviour
-{
- // Start is called before the first frame update
- void Start()
- {
-
- }
-
- // Update is called once per frame
- void Update()
- {
-
- }
-}
diff --git a/Assets/Scripts/Effects/EffectHandler.cs.meta b/Assets/Scripts/Effects/EffectHandler.cs.meta
deleted file mode 100644
index 81ee0c34..00000000
--- a/Assets/Scripts/Effects/EffectHandler.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 83576b34fc8f74048a5c050c30ab463f
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/EffectsManager.cs b/Assets/Scripts/Effects/EffectsManager.cs
deleted file mode 100644
index f62b0bdb..00000000
--- a/Assets/Scripts/Effects/EffectsManager.cs
+++ /dev/null
@@ -1,73 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System;
-
-public class EffectsManager : MonoBehaviour
-{
- public static EffectsManager Instance;
-
- public Effect[] EffectTemplates;
-
- public Transform Root_Pool;
-
- List<Effect> m_Pool = new List<Effect>();
-
- private void Awake()
- {
- Instance = this;
- }
-
- Effect GetEffectTemplate(string name)
- {
- foreach(var effect in EffectTemplates)
- {
- if(effect != null && effect.Name == name)
- {
- return effect;
- }
- }
- return null;
- }
-
- Effect RecycleEffect(string name)
- {
- foreach(var effect in m_Pool)
- {
- if (effect != null && effect.Name == name)
- {
- return effect;
- }
- }
- return null;
- }
-
- public void PlayEffect(string name, Vector3 position, Vector3 rotation, Vector3 scale)
- {
- Effect effect = RecycleEffect(name);
- if(effect == null)
- {
- Effect temp = GetEffectTemplate(name);
- effect = UnityEngine.Object.Instantiate(temp);
- }
- else
- {
- m_Pool.Remove(effect);
- }
-
- effect.transform.position = position;
- effect.transform.rotation = Quaternion.Euler(rotation);
- effect.transform.localScale = scale;
- effect.transform.SetParent(this.transform);
- effect.gameObject.SetActive(true);
- }
-
- // 回收特效
- public void CycleEffect(Effect effect)
- {
- effect.gameObject.SetActive(false);
- effect.transform.SetParent(Root_Pool);
- m_Pool.Add(effect);
- }
-
-}
diff --git a/Assets/Scripts/Effects/EffectsManager.cs.meta b/Assets/Scripts/Effects/EffectsManager.cs.meta
deleted file mode 100644
index b8dd8f96..00000000
--- a/Assets/Scripts/Effects/EffectsManager.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: db461c57209f8a241a28d33730ad12ef
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/FxClear.cs b/Assets/Scripts/Effects/FxClear.cs
deleted file mode 100644
index af3a7003..00000000
--- a/Assets/Scripts/Effects/FxClear.cs
+++ /dev/null
@@ -1,167 +0,0 @@
-using UnityEngine;
-using UnityEngine.Events;
-using System.Collections;
-using System.Collections.Generic;
-
-public enum EffectPlayTypes
-{
- None = 0,
- Oneshot,
- Loop,
-}
-
-public static class TransformEx
-{
-
- public static void DoRecursively(this Transform root, System.Action<Transform> action, bool containMe = true)
- {
- if (containMe)
- action(root);
- foreach (Transform child in root)
- child.DoRecursively(action);
- }
-
-}
-
-public struct PlayEffectInfo
-{
- public string path { get; set; }
- public Transform rootTr { get; set; }
- public bool bAttached { get; set; }
- public Vector3 posOffset { get; set; }
- public Vector3 rot { get; set; }
- public Vector3 scale { get; set; }
- public EffectPlayTypes playEffectType { get; set; }
-}
-
-public class FxClear : MonoBehaviour
-{
- [SerializeField]
- public float ClearTime = 2f;
-
- private EffectPlayTypes m_EffectPlayType = EffectPlayTypes.None;
-
- private Transform m_Root = null; //根节点,可以是角色或者某个骨骼,如果是空,代表是世界空间
- private bool m_Attached = false; // 跟随根节点运动
-
- private Vector3 m_Offset = Vector3.zero;
- private Vector3 m_Rotation = Vector3.zero;
- private Vector3 m_Scale = Vector3.one;
-
- private Quaternion m_RootRot = Quaternion.identity;
- private Vector3 m_RootPos = Vector3.zero;
-
-#if UNITY_EDITOR
- private double m_PrevTime = 0.0f;
- private float m_RemoveWaitTime = 0.0f;
- private bool m_DestroyRequested = false;
-#endif
-
- private float m_CurTime = 0.0f;
- public float time { get { return m_CurTime; } }
-
- private void Awake()
- {
- if (ClearTime <= float.Epsilon)
- m_EffectPlayType = EffectPlayTypes.Loop;
- }
-
- private void Start()
- {
- }
-
- private void OnDestroy()
- {
- Release();
- }
-
- public void Initialize(PlayEffectInfo info)
- {
- m_EffectPlayType = info.playEffectType;
- m_Root = info.rootTr;
- m_CurTime = 0.0f;
- m_Offset = info.posOffset;
- m_Rotation = info.rot;
- m_Scale = info.scale;
- m_Attached = info.bAttached;
-
- if(info.rootTr != null)
- {
- m_RootPos = info.rootTr.transform.position;
- m_RootRot = info.rootTr.transform.rotation;
- }
-
- SyncTr();
- gameObject.SetActive(true);
- }
-
- public void Release()
- {
- m_Root = null;
- m_CurTime = 0.0f;
- m_Attached = false;
- m_Offset = Vector3.zero;
- m_Rotation = Vector3.zero;
- m_Scale = Vector3.zero;
- }
-
- // 同步特效的缩放、旋转和位置
- private void SyncTr()
- {
- if (transform == null || transform.gameObject == null)
- return;
-
- if (m_Scale != Vector3.zero)
- {
- transform.localScale = m_Scale;
- }
-
- if (m_Root == null) // 世界空间
- {
- transform.position = m_Offset;
- transform.rotation = Quaternion.Euler(m_Rotation);
- }
- else
- {
- if (m_Attached)
- {
- if(m_Root)
- {
- transform.rotation = m_Root.rotation * Quaternion.Euler(m_Rotation);
- transform.position = m_Root.TransformPoint(m_Offset);
- }
- else
- {
- transform.rotation = m_RootRot * Quaternion.Euler(m_Rotation);
- transform.position = m_RootPos + (m_RootRot * m_Offset);
- }
- }
- else
- {
- transform.rotation = m_RootRot * Quaternion.Euler(m_Rotation);
- transform.position = m_RootPos + (m_RootRot * m_Offset);
- }
- }
- }
-
- public void Restore()
- {
- DestroyImmediate(this.gameObject);
- }
-
- public void UpdateFunc(float dt)
- {
- m_CurTime += dt;
- SyncTr();
- if (m_EffectPlayType != EffectPlayTypes.Loop && m_CurTime >= ClearTime)
- {
- Restore();
- return;
- }
- }
-
- private void Update()
- {
- UpdateFunc(Time.unscaledDeltaTime);
- }
-} \ No newline at end of file
diff --git a/Assets/Scripts/Effects/FxClear.cs.meta b/Assets/Scripts/Effects/FxClear.cs.meta
deleted file mode 100644
index 2d25b100..00000000
--- a/Assets/Scripts/Effects/FxClear.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: fe3f4700e4af0b34b82b4ff79b1d8fec
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/HairAssignMaterials.cs b/Assets/Scripts/Effects/HairAssignMaterials.cs
deleted file mode 100644
index d2b42d05..00000000
--- a/Assets/Scripts/Effects/HairAssignMaterials.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-[ExecuteInEditMode]
-public class HairAssignMaterials : MonoBehaviour
-{
- public Material material;
-
- public SkinnedMeshRenderer renderer;
-
- public int count;
-
- public void OnEnable()
- {
- if (renderer == null)
- return;
- Material[] materials = new Material[count];
- for(int i = 0; i < count;++i)
- {
- materials[i] = material;
- }
- renderer.sharedMaterials = materials;
- }
-
-}
diff --git a/Assets/Scripts/Effects/HairAssignMaterials.cs.meta b/Assets/Scripts/Effects/HairAssignMaterials.cs.meta
deleted file mode 100644
index a4a2c636..00000000
--- a/Assets/Scripts/Effects/HairAssignMaterials.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 06f8e7dbd5d25034ab87247a8458ed28
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/ShurikenBakedMeshEmitter.cs b/Assets/Scripts/Effects/ShurikenBakedMeshEmitter.cs
deleted file mode 100644
index 65a36d9d..00000000
--- a/Assets/Scripts/Effects/ShurikenBakedMeshEmitter.cs
+++ /dev/null
@@ -1,124 +0,0 @@
-using UnityEngine;
-using System.Collections;
-
-public class ShurikenBakedMeshEmitter : MonoBehaviour
-{
- [Tooltip("パーティクルで使用したいメッシュ")]
- public SkinnedMeshRenderer skin;
- //使用するメッシュの現在の形を保存
- Mesh baked;
- //再生に使用するパーティクルシステム
- ParticleSystem particle;
- ParticleSystemRenderer render;
- [Tooltip("パーティクルの再生/停止")]
- public bool emit;
- [Tooltip("パーティクルを放出する間隔(秒)")]
- public float coolDown = 0.5f;
- //現在の待機時間
- float interval = 0;
-
- // Use this for initialization
- void Start()
- {
- //元となるメッシュが指定されていなければ本スクリプトを停止
- if (!skin)
- this.enabled = false;
- //使用するパーティクルシステムへのアクセス
- particle = GetComponent<ParticleSystem>();
- render = GetComponent<ParticleSystemRenderer>();
- }
-
- // Update is called once per frame
- void Update()
- {
- //emitが[true]なら...
- if (emit)
- {
- //待機時間の計算
- interval -= Time.deltaTime;
- //必要分の待機時間が経過したなら...
- if (interval < 0)
- {
- //シーンに新たなGameObjectを再生(本GameObjectのコピー)
- GameObject newEmitter = Instantiate(gameObject, transform.position, transform.rotation) as GameObject;
- //再生したGameObjectにEmitMesh()を指示
- newEmitter.GetComponent<ShurikenBakedMeshEmitter>().EmitMesh();
- //待機時間のリセット
- interval = coolDown;
- }
- //emitが[false]なら...
- }
- else
- {
- //待機時間のリセット
- interval = coolDown;
- }
- }
-
- //外部からのアクセスでパーティクルの再生をさせる
- public void EmitMesh()
- {
- //Update ()させない為に[false]
- emit = false;
- //メッシュの型をリセット
- baked = new Mesh();
- //使用するメッシュの現在の形を保存
- skin.BakeMesh(baked);
-
- //自身のパーティクルシステムへのアクセス
- particle = GetComponent<ParticleSystem>();
- render = GetComponent<ParticleSystemRenderer>();
-
- Mesh mainMesh = baked;
- Mesh meshToCopy = new Mesh();
- meshToCopy.vertices = mainMesh.vertices;
- meshToCopy.triangles = mainMesh.triangles;
- meshToCopy.normals = mainMesh.normals;
- meshToCopy.uv = mainMesh.uv;
- int amount = 8;
- Matrix4x4[] matrix = new Matrix4x4[amount];
- for (int i = 0; i < amount; i++)
- {
- matrix[i].SetTRS(new Vector3(i * 10, 0, 0), Quaternion.Euler(new Vector3(Random.Range(-5, 5), Random.Range(0, 360), Random.Range(-5, 5))), Vector3.one);
- }
-
- CombineInstance[] ci = new CombineInstance[amount];
- for (int i = 0; i < amount; i++)
- {
- ci[i] = new CombineInstance();
- ci[i].mesh = meshToCopy;
- ci[i].transform = matrix[i];
- }
-
- Mesh batchedMesh = gameObject.AddComponent<MeshFilter>().mesh = new Mesh();
- batchedMesh.CombineMeshes(ci);
-
- int[] mainSubTri;
- int[] newSubTri;
- batchedMesh.subMeshCount = mainMesh.subMeshCount;
-
- for (int i = 0; i < mainMesh.subMeshCount; i++)
- {
- mainSubTri = mainMesh.GetTriangles(i);
-
- newSubTri = new int[mainSubTri.Length * amount];
-
- for (int ii = 0; ii < amount; ii++)
- {
- for (int iii = 0; iii < mainSubTri.Length; iii++)
- {
- newSubTri[(ii * mainSubTri.Length) + iii] = mainSubTri[iii] + (ii * mainMesh.vertexCount);
- }
- }
- batchedMesh.SetTriangles(newSubTri, i);
- }
-
-
- //パーティクルシステムで使用するメッシュを指定
- render.mesh = meshToCopy;
- //パーティクルの再生
- particle.Play();
- //本GameObjectの破棄の指示
- Destroy(gameObject, particle.duration);
- }
-} \ No newline at end of file
diff --git a/Assets/Scripts/Effects/ShurikenBakedMeshEmitter.cs.meta b/Assets/Scripts/Effects/ShurikenBakedMeshEmitter.cs.meta
deleted file mode 100644
index b39edab1..00000000
--- a/Assets/Scripts/Effects/ShurikenBakedMeshEmitter.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 9bd02b95bf27c724ea9bb26806323053
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/Spark.cs b/Assets/Scripts/Effects/Spark.cs
deleted file mode 100644
index 5f8856c4..00000000
--- a/Assets/Scripts/Effects/Spark.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class Spark : MonoBehaviour
-{
- public string Name;
- public float LifeTime;
-
- private float time;
-
- public Transform Host;
-
- private void Awake()
- {
- }
-
- private void OnEnable()
- {
- time = 0;
- }
-
- private void Update()
- {
- time += Time.deltaTime;
- if(time > LifeTime)
- {
- SparksManager.Instance.CycleSpark(this);
- }
- if (Host != null)
- {
- transform.position = Host.position;
- }
- }
-
-}
diff --git a/Assets/Scripts/Effects/Spark.cs.meta b/Assets/Scripts/Effects/Spark.cs.meta
deleted file mode 100644
index c1c05447..00000000
--- a/Assets/Scripts/Effects/Spark.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 35fa504215dc5194a944721d5cc378af
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant:
diff --git a/Assets/Scripts/Effects/SparksManager.cs b/Assets/Scripts/Effects/SparksManager.cs
deleted file mode 100644
index 6825f615..00000000
--- a/Assets/Scripts/Effects/SparksManager.cs
+++ /dev/null
@@ -1,91 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-using System;
-
-public class SparksManager : MonoBehaviour
-{
- public static SparksManager Instance;
-
- public Spark[] SparkTemplates;
-
- public Transform Root_Pool;
-
- List<Spark> m_Pool = new List<Spark>();
-
- private void Awake()
- {
- Instance = this;
- }
-
- Spark GetSparkTemplate(string name)
- {
- foreach (var effect in SparkTemplates)
- {
- if (effect != null && effect.Name == name)
- {
- return effect;
- }
- }
- return null;
- }
-
- Spark RecycleSpark(string name)
- {
- foreach (var effect in m_Pool)
- {
- if (effect != null && effect.Name == name)
- {
- return effect;
- }
- }
- return null;
- }
-
- public void PlaySpark(string name, Vector3 position)
- {
- Spark effect = RecycleSpark(name);
- if (effect == null)
- {
- Spark temp = GetSparkTemplate(name);
- effect = UnityEngine.Object.Instantiate(temp);
- }
- else
- {
- m_Pool.Remove(effect);
- }
-
- effect.Host = null;
- effect.transform.position = position;
- effect.transform.SetParent(this.transform);
- effect.gameObject.SetActive(true);
- }
-
-
- public void PlaySpark(string name, Transform host)
- {
- Spark effect = RecycleSpark(name);
- if (effect == null)
- {
- Spark temp = GetSparkTemplate(name);
- effect = UnityEngine.Object.Instantiate(temp);
- }
- else
- {
- m_Pool.Remove(effect);
- }
- effect.Host = host;
- effect.transform.position = host.position;
- effect.transform.SetParent(this.transform);
- effect.gameObject.SetActive(true);
- }
-
- // 回收特效
- public void CycleSpark(Spark effect)
- {
- effect.gameObject.SetActive(false);
- effect.transform.SetParent(Root_Pool);
- m_Pool.Add(effect);
- }
-
-}
diff --git a/Assets/Scripts/Effects/SparksManager.cs.meta b/Assets/Scripts/Effects/SparksManager.cs.meta
deleted file mode 100644
index 84d3b608..00000000
--- a/Assets/Scripts/Effects/SparksManager.cs.meta
+++ /dev/null
@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: c1cf80a321371944a9a3e8dfbe7e5134
-MonoImporter:
- externalObjects: {}
- serializedVersion: 2
- defaultReferences: []
- executionOrder: 0
- icon: {instanceID: 0}
- userData:
- assetBundleName:
- assetBundleVariant: