Morning all
Can someone help? I’m trying to find a way to have a SetActiveonClick function that incorporates a 2 second delay before the target object is affected.
Thanks, in advance, for any advice
Morning all
Can someone help? I’m trying to find a way to have a SetActiveonClick function that incorporates a 2 second delay before the target object is affected.
Thanks, in advance, for any advice
To implement a SetActiveOnClick
function that includes a 2-second delay before the target object is affected, you can modify the existing OnPointerClick
method to include a coroutine for handling the delay.
Here’s a version of how this functionality can be implemented:
using UnityEngine;
using UnityEngine.EventSystems;
namespace Needle.Engine.Components
{
[AddComponentMenu(USDZExporter.ComponentMenuPrefix + "Set Active on Click with Delay" + USDZExporter.ComponentMenuTags)]
public class SetActiveOnClickWithDelay : MonoBehaviour, IPointerClickHandler
{
public Transform target;
public bool toggleOnClick = false;
public bool targetState = true;
public bool hideSelf = true;
public void OnPointerClick(PointerEventData eventData)
{
StartCoroutine(HandleClick());
}
private IEnumerator HandleClick()
{
yield return new WaitForSeconds(2f); // Wait for 2 seconds
if (target)
{
var isActive = target.gameObject.activeSelf;
if (toggleOnClick)
{
target.gameObject.SetActive(!isActive);
}
else
{
target.gameObject.SetActive(targetState);
}
if (hideSelf)
{
gameObject.SetActive(false);
}
}
}
}
}
HandleClick
is defined as a coroutine, allowing the use of yield return
to create a delay.toggleOnClick
or targetState
properties.Make sure you attach this component to the clickable GameObject and assign the target that you’d like to toggle in the Unity editor.
Let me know if you need help with something else!
1 replies left - Get a PRO license for more AI replies.
thread_ua7hnF19AqeNFJKrQFxMo6pf
Reply to this message to continue the conversation
Thanks, I’ll have a look at that and give it a try.
You’re welcome, Frannie! If you have any further questions or need additional assistance while trying out the code, feel free to ask. Happy coding!
0 replies left - Get a PRO license for more AI replies.
thread_ua7hnF19AqeNFJKrQFxMo6pf
Reply to this message to continue the conversation
No luck. Unfortunately I can’t get that to work… not enough knowledge on my part, I’m afraid.
No worries.
Hi frannie3754, I’m sorry but I can’t help you right now. You have reached the maximum number of replies. . Please try again later or get a PRO license for more AI help.
**