When you have a button object there is the On Click () area that can execute different actions like a PlayMaker script or a function in a C# script.
Issue with the C# script. You can’t drag and drop the script from the Assets Panel. The script needs to be assigned to an object, then drag and drop that object on the On Click () object. Then select the script and then the function from the drop down there.
Code snippet below is the EnableDisableAudio function that gets executed by the On Click () function above. Note that the script has to be assigned to an object, in this case the button.
The following scriptwill let an object follow a player when it is within a certain range and will stop following it once it is out of a certain range
The following variables can be adjusted from the Inspector.
Attack Speed = How fast the game object moves Attack Distance = How close does the player need to be to start moving Buffer Distance = How far away from the player should the game object stop Player = Game player to target
To use script, create a new C# script named FollowPlayer and paste in the following.
public class FollowPlayer : MonoBehaviour
public float attackSpeed = 4;
public float attackDistance;
public float bufferDistance;
public GameObject player;
if (player != null)
playerTransform = player.transform;
Debug.Log("Player not specified in Inspector");
// Start is called before the first frame update
// Update is called once per frame
var distance = Vector3.Distance(playerTransform.position, transform.position);
// Debug.Log("Distance to Player" + distance);
if (distance <= attackDistance)
if (distance >= bufferDistance)
transform.position += transform.forward * attackSpeed * Time.deltaTime;
The following picture shows the basics for create a loop that runs every second. You’ll need to create a float variable (Named oneSecond in the screen shot) that has a value of 1 for one second. Changed if desired.
Put your actions in the “Execute every 1 Second” state