【求助】如何将以下两条代码合成一条?

vitolam 2021-04-29 09:28:14
timeText.text = string.Format("{0:0}:{1:00}", minutes, seconds);
timeText.text = Mathf.CeilToInt(time).ToString();


嗨!大家好!请帮帮忙!我搞了两天了还是不行。
这是要呈现时间器倒数的代码,Mathf.CeilToInt(time) 中的 time 有实现倒数的功能,所以我想把两条代码一起输出出来。
请问如何将两条连成一条?

源代码如下:

using UnityEngine;
using UnityEngine.UI;

[ExecuteInEditMode]
public class RadialSlider : MonoBehaviour
{
public GameObject radial;
public Image filled;
public Text timeText;
public float maxValue = 100;
public float value = 0;
public bool textReversed = false;


void Update()
{
float minutes = Mathf.FloorToInt(value / 60);
float seconds = Mathf.FloorToInt(value % 60);
float time = (textReversed) ? (maxValue - value) : value;

value = Mathf.Clamp(value, 0, maxValue);
float amount = value / maxValue;

filled.fillAmount = amount;

//timeText.text = string.Format("{0:0}:{1:00}", minutes, seconds);
//timeText.text = Mathf.CeilToInt(time).ToString();


if (time <= 0)

{
radial.SetActive(false);

}

else if (time == maxValue)
{
radial.SetActive(false);
}

else
{
radial.SetActive(true);

}


}


}
...全文
142 点赞 收藏 7
写回复
7 条回复
vitolam 04月29日
引用 1 楼 Bridge_go 的回复:
啥意思?? timeText.text = string.Format("{0:0}:{1:00}", minutes, seconds) + Mathf.CeilToInt(time).ToString() ???
需要呈现这个时间格式("{0:0}:{1:00}", minutes, seconds) 但是需要 “倒数” 现在是出现 比如: 3:48 3:49 3:50 3:51 这样, 我想要变成如下: 3:51 3:50 3:49 3:48 以此类推。。。
回复 点赞
Bridge_go 04月29日
啥意思?? timeText.text = string.Format("{0:0}:{1:00}", minutes, seconds) + Mathf.CeilToInt(time).ToString() ???
回复 点赞
vitolam 04月29日
我成功做到效果了!谢谢各位! using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; [ExecuteInEditMode] public class RadialSlider : MonoBehaviour { public float timeRemaining = 10; public bool timerIsRunning = false; public GameObject radial; public Image filled; public Text timeText; public float maxValue = 100; public float value = 0; public bool textReversed = false; private void Start() { // Starts the timer automatically timerIsRunning = true; } void Update() { float time = (textReversed) ? (maxValue - value) : value; value = Mathf.Clamp(value, 0, maxValue); float amount = value / maxValue; filled.fillAmount = amount; if (timerIsRunning) { if (timeRemaining > 0) { timeRemaining -= Time.deltaTime; DisplayTime(timeRemaining); } else { Debug.Log("Time has run out!"); timeRemaining = 0; timerIsRunning = false; } } if (time <= 0) { radial.SetActive(false); } else if (time == maxValue) { radial.SetActive(false); } else { radial.SetActive(true); } void DisplayTime(float timeToDisplay) { timeToDisplay += 1; float minutes = Mathf.FloorToInt(timeToDisplay / 60); float seconds = Mathf.FloorToInt(timeToDisplay % 60); timeText.text = string.Format("{0:00}:{1:00}", minutes, seconds); } } }
回复 点赞
vitolam 04月29日
引用 5 楼 dopsop110 的回复:
你加个定时器,每隔1秒执行1次,用你的输入时间-1秒打印出来不就行了嘛?
对对!应该是这样! 我才学 c# 一个月,真不会弄,能写出来给我吗?
回复 点赞
vitolam 04月29日
引用 4 楼 xuzuning 的回复:
timeText.text = string.Format("{0:0}:{1:00}", minutes, Mathf.CeilToInt(time));
timeText.text = string.Format("{0:0}:{1:00}", minutes, seconds, Mathf.CeilToInt(time)); 这样的确如我所说的把两条合并在一起了! 但是我才发现,合并起来也不会实现倒数的现象,唉 无论如何,谢谢你啦!
回复 点赞
dopsop110 04月29日
你加个定时器,每隔1秒执行1次,用你的输入时间-1秒打印出来不就行了嘛?
回复 点赞
xuzuning 04月29日
timeText.text = string.Format("{0:0}:{1:00}", minutes, Mathf.CeilToInt(time));
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告