From b17087d59b497e6e00f26f571920803f9a82ba42 Mon Sep 17 00:00:00 2001 From: chai Date: Wed, 4 Nov 2020 18:53:08 +0800 Subject: *after image --- Assets/Scripts/ApplicationMain.cs | 3 +-- Assets/Scripts/Effects/AfterImage/AfterImage.cs | 17 +++++++++--- .../Scripts/Effects/AfterImage/AfterImagePool.cs | 31 ++++++++++++++-------- 3 files changed, 34 insertions(+), 17 deletions(-) (limited to 'Assets/Scripts') diff --git a/Assets/Scripts/ApplicationMain.cs b/Assets/Scripts/ApplicationMain.cs index 99209c50..81ac453c 100644 --- a/Assets/Scripts/ApplicationMain.cs +++ b/Assets/Scripts/ApplicationMain.cs @@ -30,5 +30,4 @@ public class ApplicationMain : MonoBehaviour } -} - +} \ No newline at end of file diff --git a/Assets/Scripts/Effects/AfterImage/AfterImage.cs b/Assets/Scripts/Effects/AfterImage/AfterImage.cs index 1e1d0393..b63661df 100644 --- a/Assets/Scripts/Effects/AfterImage/AfterImage.cs +++ b/Assets/Scripts/Effects/AfterImage/AfterImage.cs @@ -6,7 +6,7 @@ public class AfterImage : MonoBehaviour { public Animator myAnimator; //public CharacterControl myCharacterControl; - public Renderer myRenderer; + public Renderer[] myRenderers; public Animator targetAnimator; public GameObject targetObject; @@ -38,14 +38,22 @@ public class AfterImage : MonoBehaviour { active = false; intensity = 0; + this.transform.gameObject.SetActive(false); } } void UpdateRenderer() { - myRenderer.material.SetFloat("_Intensity", intensity); - myRenderer.material.SetFloat("_MKGlowPower", intensity); - } + foreach(var renderer in myRenderers) + { + for(int i = 0;i < renderer.materials.Length; ++i) + { + renderer.materials[i].SetColor("_Color", Color.red); + renderer.materials[i].SetFloat("_Intensity", intensity); + renderer.materials[i].SetFloat("_MKGlowPower", intensity); + } + } + } public void Activate() { @@ -53,6 +61,7 @@ public class AfterImage : MonoBehaviour 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.Play(myCharacterControl.animator.GetCurrentAnimatorStateInfo(0).normalizedTime); diff --git a/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs b/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs index f9d033fd..8b32fe38 100644 --- a/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs +++ b/Assets/Scripts/Effects/AfterImage/AfterImagePool.cs @@ -19,32 +19,41 @@ public class AfterImagePool : MonoBehaviour // Use this for initialization void Start() { - //myCharacterControl = transform.root.GetComponent(); - //Debug.Log("START AFTER IMAGE POOL"); afterImages = new List(poolSize); for (int i = 0; i < poolSize; i++) { GameObject nextAfterImage = Instantiate(prefab); - afterImages.Add(nextAfterImage.GetComponent()); - - nextAfterImage.GetComponent().targetObject = targetObject; //Game Object Target - nextAfterImage.GetComponent().targetAnimator = targetAnimator; //Animator Target - } - } + nextAfterImage.transform.SetParent(this.transform); + + nextAfterImage.GetComponent().targetObject = targetObject; //Game Object Target + nextAfterImage.GetComponent().targetAnimator = targetAnimator; //Animator Target + + nextAfterImage.SetActive(false); + + afterImages.Add(nextAfterImage.GetComponent()); + } + } // Update is called once per frame void Update() { - //if (CitadelDeep.hitPause > 0 || CitadelDeep.debugPause) { return; } time++; - if (time > interval) { time = 0; AddAfterImage(); } + if (time > interval) + { + time = 0; + AddAfterImage(); + } } void AddAfterImage() { for (int i = 0; i < poolSize; i++) { - if (!afterImages[i].active) { afterImages[i].Activate(); break; } + if (!afterImages[i].active) + { + afterImages[i].Activate(); + break; + } } } } \ No newline at end of file -- cgit v1.1-26-g67d0