// Execute the action public int Execute(HeroKitObject hko) { heroKitObject = hko; // get field values startColor = ColorValue.GetValue(heroKitObject, 0); speed = IntegerFieldValue.GetValueA(heroKitObject, 1) * 0.01f; // get the fade UI HeroKitObject targetObject = HeroKitCommonRuntime.GetPrefabFromAssets(HeroKitCommonRuntime.settingsInfo.fadeInOutScreen, true); bool runThis = (targetObject != null); if (runThis) { targetObject.gameObject.SetActive(true); // fade out the scene uiColor = targetObject.GetHeroComponent <UIColor>("UIColor", true); uiColor.targetImage = targetObject.GetComponentInChildren <Image>(true); uiColor.targetColor = startColor; uiColor.startColor = new Color(0, 0, 0, 0); uiColor.speed = speed; uiColor.Initialize(); // set up update for long action eventID = heroKitObject.heroStateData.eventBlock; heroKitObject.heroState.heroEvent[eventID].waiting = true; updateIsDone = false; heroKitObject.longActionsFixed.Add(this); } // show debug message if (heroKitObject.debugHeroObject) { string debugMessage = "Speed: " + speed + "\n" + "Start Color:" + startColor; Debug.Log(HeroKitCommonRuntime.GetActionDebugInfo(heroKitObject, debugMessage)); } // return value return(-99); }