Simplest way I found to change sprites at runtime is make a c# script and use the Playmaker Call Method to access when needed. You will need to make a Resources Folder and then a sub-folder to hold your sprites. In the example we called our sub-folder test.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SpriteTest : MonoBehaviour {
//this is the folder in the first level of your Resources Folder
private string spriteFolder = "test"; //<--Change this string to match folder name
//The number in the array where the sprite is 0,1,2 etc.
public int spriteVersion;
//to get the sprite render component
private SpriteRenderer spriteR;
//to dump the sprites into an array from the folder listed above. Note that the sprites get added in order that they are in the folder. First sprite is 0, second is 1, etc.
private Sprite[] sprites;
// Use this for initialization
void Start () {
//Get the renderer of the sprite that this script is on.
spriteR = this.GetComponent<SpriteRenderer>();
//load the sprites from the Resources Folder for the folder you specified above
sprites = Resources.LoadAll<Sprite>(spriteFolder);
}
//call this function to update your sprite. use 0,1,2 etc to define which sprite you want to pull from the array.
public void ChangeBackground(int background)
{
spriteR.sprite = sprites[background];
}