Have a look at the powerups in the campaign. They are units, which have an ability on autocast with a low range. When a valid unit comes in range, the ability is casted on that unit. The ability then executes a Set effect, which executes more effects, one of them kills the powerup (the Suicide effect usually), and another effect executes the desired action, in your case this would be an Apply Behavior effect.
You can easily exclude structures and only allow biological units within the target filters of the ability, also you can make a buff set the tint color and scaling of the unit by using its actor events. If the buff itself should not have any animation itself, only modify the unit, you would create a new actor, type Model, based on ModelAddition, set the Model- field to Invisible and use events similar to this:
Behavior.MyBehavior.on
Create
Behavior.MyBehavior.off
Destroy
ActorCreation
SetTintColor
ActorCreation
SetScale
ActorDestruction
ResetTintColor (set to original value)
ActorDestruction
ResetScale
To make the actor messages affect the unit actor instead of itself, use the Target field for the message. If you select the message, it is the topmost field. It is usually empty, and you have to enter a string. Enter ::Main or _Selectable to make it affect the unit actor. Do this for every SetScale and every SetTintColor message.
Have a look at the powerups in the campaign. They are units, which have an ability on autocast with a low range. When a valid unit comes in range, the ability is casted on that unit. The ability then executes a Set effect, which executes more effects, one of them kills the powerup (the Suicide effect usually), and another effect executes the desired action, in your case this would be an Apply Behavior effect.
You can easily exclude structures and only allow biological units within the target filters of the ability, also you can make a buff set the tint color and scaling of the unit by using its actor events. If the buff itself should not have any animation itself, only modify the unit, you would create a new actor, type Model, based on ModelAddition, set the Model- field to Invisible and use events similar to this:
To make the actor messages affect the unit actor instead of itself, use the Target field for the message. If you select the message, it is the topmost field. It is usually empty, and you have to enter a string. Enter ::Main or _Selectable to make it affect the unit actor. Do this for every SetScale and every SetTintColor message.