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.Play(myCharacterControl.animator.GetCurrentAnimatorStateInfo(0).normalizedTime); //myAnimator.no //foreach (AnimatorControllerParameter param in targetAnimator.parameters) //{ // if (param.type == AnimatorControllerParameterType.Float) // { // myAnimator.SetFloat(param.name, targetAnimator.GetFloat(param.name)); // } // if (param.type == AnimatorControllerParameterType.Int) // { // myAnimator.SetInteger(param.name, targetAnimator.GetInteger(param.name)); // } //} myAnimator.speed = 0.02f; myAnimator.Update(1/60f); time = timeMax + 1; Update(); } }