Changing Opacity, on Sticker behavior

Using the Sticker behavior, im missing some additional functions:

Stick Opacity
Stick Hide/Show
Stick Layerchange

Hi Kenabi. The sticker only works on position and angle.

You’d have to change the opacity using events.

This can be done in just a few minutes if you use the right events.

1, set object opacity to something like StickerObject.Opacity()

2, if StickerObject isnt visible, hide object. (Do the opposite for showing)

3, This might not be exactly right, but i believe
Set layer of object (make sure you use an expression for the chosen layer) to StickerObject.Layer()

Yes but my Problem is I have many objects sticked

Okay, and how would that stop you from doing it to all them?

Having 10+ objects tweening opacity multiple times on different event places all simultaneously exactly the same. A stick opacity behavior would save a lot time and would make things way less complicated.

As my previous reply, this is not possible with sticker extension. Though, you can use it’s condition “is stuck to” to apply the same actions on the sticker object that are applied to the base object.

You can do same to the other actions, like show/hide or layer change etc…

Also as @PiercingGames suggested (just make sure to use the condition “is stuck to” to pick the sticker object):

1 Like

It would be convinent to have the sticker copy the properties to the objects that are stuck to it but it wouldn’t be efficient.

Objects are likely to move on every frame. So, it makes sense for the behavior to sync the position of the stuck objects. But the Opacity, layer and visiblity values rarely change.

Let’s say you change the opacity . If you do it with events. You just do it once every so often.

If space is pressed change opacity of stuck objects, you would probably need a for each object and maybe tweens.

The only thing tested on each frame is the key is pressed.

If it’s part of the behavior, the behavior has to check the opacity on each frame whether it was changed or not.

You can’t use a trigger once with the Opacity value. You could either copy the main objects value to the stuck objects on every frame or add a variable to hold the previous value.

In the behavior
If opacity ≠ lastOpacity then change the opacity on objects stuck to it. LastOpacity = Opacity.

You can see how that wouldn’t be efficient to do on every frame. Especially if it’s also doing the position, angle, visibility and layer. It’s more efficient to do some things only when needed.

If you have objects that are always stuck to an object, it might be easier if the objects are in a group. You might not even need to check if they’re stuck if they’re always stuck. Change them when you change the main object.

There are time when an extension is the best options. Times when events on the main event sheet are best. And other times it might be best to create a custom extension or behavior.

There are also custom objects or prefabs that can contain multiple objects. (Like the slider object) Although, they’re not as user friendly to setup and use.

1 Like

im not sure if it would cost that much computing.

Checking if a button is pressed, or checking whether a number != another number are both not that heavy.

Ive tested the “destroy if the object is stuck on is destroyed” with hundreds of objects and it did not even cost 0.01ms.
I think adding theses features would help for most user on most occasions and would make things way less complicated.

Stick Opacity
Stick Hide/Show
Stick Layerchange

1 Like

You can post your suggestion in the general / feature request section.