diff options
Diffstat (limited to 'Assets/Scripts/Effects')
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: |