c# - 如何在 Unity 中更改 TextMeshPro 对象的文本?
问题描述
我正在尝试更新 TextMeshPro 对象以显示游戏中灵敏度滑块的值。但是,它不会更新!
我试过查找它,但几乎我遵循的每个教程都没有帮助。
这是“PlayerScript”脚本,它获取滑块上的值(此函数):
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;
public class PlayerScript : MonoBehaviour
{
// Update is called once per frame
public float moveSpeed = 600f;
public static float publicSensitivity;
float movement = 0f;
void Update()
{
movement = Input.GetAxisRaw("Horizontal");
}
public void SetSensitivity(float sensitivity)
{
Debug.Log(sensitivity);
moveSpeed = sensitivity * 12;
publicSensitivity = sensitivity;
}
void FixedUpdate()
{
transform.RotateAround(Vector3.zero, Vector3.forward, movement * Time.fixedDeltaTime * -moveSpeed);
}
}
这是'ChangePercentage'脚本,用于更改TextMeshPro文本对象以反映滑块上的值(不更改。默认情况下,对象读取“foo”。当我打开选项菜单时,它更改为读取0%,但只有一次。这意味着它必须更新但不是连续的):
using System.Collections.Generic;
using UnityEngine;
using TMPro;
public class ChangePercentage : MonoBehaviour
{
public TextMeshProUGUI self;
void Update()
{
self.text = (PlayerScript.publicSensitivity).ToString() + "%";
}
}
提前致谢!
解决方案
如何/在哪里调用 SetSensitivity 方法?我建议使用滑块对象,然后将灵敏度设置为 slider.value 。例子:
unsing UnityEngine.UI;
public slider sensitivity_slider;
public static float sensitivity;
public void Update(){
sensitivity = sensitivity_slider.value;
}
您还可以制作一个直接显示滑块值的脚本。
希望我能帮上忙,对不起我的英语不好。
推荐阅读
- python - 在python中查找由重复字符组成的单词
- javascript - 我应该如何将使用 Redux-Saga 进行长时间操作的 React 站点迁移到 React hooks?
- arrays - 如何从单词列表开始创建所有排列
- r - 如何在 R 中创建线性可视化?
- python - 解析 Nginx 日志
- javascript - Javascript 功能在我的正则表达式上无法正常工作
- java - 二叉树中出现的计数
- .net-core - 使用“.NETFramework,Version=v4.6.1”而不是项目目标框架来恢复包“GuerrillaSharp 1.0.0”
- c++ - 导入 Assimp:Assimp.xcodeproj 项目失败构建错误
- android - 如何将数组从firestore转换为字符串以显示在viewholder textview中