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