# BroadcastMessage(string, object, SendMessageOptions)

> Calls the specified method on every MonoBehaviour attached to the GameObject or any of its children.

## Definition

* **Type:** Method
* **Namespace:** [UnityEngine](/engine/6000.5/script-reference/unityengine.md)
* **Assembly:** UnityEngine.CoreModule

## BroadcastMessage(string, Object, SendMessageOptions)

```csharp
public void BroadcastMessage(string methodName, object parameter, SendMessageOptions options)
```

### Parameters

**** (\[string]\(https\://learn.microsoft.com/dotnet/api/system.string)): The name of the MonoBehaviour method to call.**** (\[Object]\(https\://learn.microsoft.com/dotnet/api/system.object)): An optional parameter value to pass to the called method.**** (\[SendMessageOptions]\(/engine/6000.5/script-reference/unityengine/sendmessageoptions)): Whether an error should be raised if the method doesn't exist on the target object.

### Remarks

A `parameter` specified for a method that doesn't accept parameters is ignored. If `options` is set to [SendMessageOptions.RequireReceiver](/engine/6000.5/script-reference/unityengine/sendmessageoptions/requirereceiver.md) an error is printed when the message is not picked up by any component.

```csharp
using UnityEngine;

public class Example : MonoBehaviour
{
    void Start()
    {
        /// Calls the function ApplyDamage with a value of 5
        /// // Every script attached to the GameObject and all its children
        // that has a ApplyDamage function will be called.
        gameObject.BroadcastMessage("ApplyDamage", 5.0);
    }
}


public class Example2 : MonoBehaviour
{
    public void ApplyDamage(float damage)
    {
        print(damage);
    }
}
```

Additional Resources: MonoBeheaviour, [GameObject.SendMessage](/engine/6000.5/script-reference/unityengine/gameobject/sendmessage.md), [GameObject.SendMessageUpwards](/engine/6000.5/script-reference/unityengine/gameobject/sendmessageupwards.md)
