C# 从对象Checksphere淡入UI文本并进行交互

C# 从对象Checksphere淡入UI文本并进行交互,c#,unity3d,if-statement,user-interface,text,C#,Unity3d,If Statement,User Interface,Text,我试图想出一个通用的规则,我可以添加到任何游戏对象。像桌子、椅子等曾经发生碰撞和互动的物品会在白色文本中淡出,几秒钟后文本就会淡出 理想情况下,我可以用矢量3偏移文本的位置,这样我就可以在角色周围定位它 目前我有一些代码,但是CrossFade.Alpha似乎不起作用。这可能是最好的方式,也可能不是,我愿意接受新的想法 using System.Collections; using System.Collections.Generic; using UnityEngine; using

我试图想出一个通用的规则,我可以添加到任何游戏对象。像桌子、椅子等曾经发生碰撞和互动的物品会在白色文本中淡出,几秒钟后文本就会淡出

理想情况下,我可以用矢量3偏移文本的位置,这样我就可以在角色周围定位它

目前我有一些代码,但是CrossFade.Alpha似乎不起作用。这可能是最好的方式,也可能不是,我愿意接受新的想法

    using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class Qwerty : MonoBehaviour
{

    public float Radius = 1f;
    public Text TextToUse;
    [SerializeField] private LayerMask playerMask;
    private bool isInSphere;


    // Start is called before the first frame update
    void Start()
    {
        isInSphere = false;
    }

    // Update is called once per frame
    void Update()
    {
        isInSphere = Physics.CheckSphere(transform.position, Radius, playerMask);
        if (isInSphere && Input.GetKey(KeyCode.F) == true)
        {
            // Check if collision is detected and F is pressed
            isInSphere = true;
            Debug.Log("Hello");
            //Fade in over 2 seconds
            TextToUse.CrossFadeAlpha(1, 2f, false);
        }

        else if (!isInSphere && !Input.GetKey(KeyCode.F))

        {
            //Fade out on leave over 2 seconds
            isInSphere = false;
            TextToUse.CrossFadeAlpha(0, 2f, false);
        }

    }
}

说明

Tweens与此图形关联的画布渲染器颜色的alpha

在附着画布渲染器的图形上创建淡入淡出效果。选择要淡入的alpha级别,然后选择淡入的速度以查看随时间的平滑淡入。UI图像和文本是可以应用此效果的一些元素

CrossFade.Alpha
需要一个带有
CanvasRenderer
的画布