【发布时间】:2018-06-11 12:39:30
【问题描述】:
我正在尝试使用此代码将对象的红色值更改为它与相机之间的距离:
using UnityEngine;
using UnityEngine.UI;
public class DistanceToCheckpoint : MonoBehaviour {
// Reference to checkpoint position
[SerializeField]
private Transform checkpoint;
// Reference to UI text that shows the distance value
[SerializeField]
private Text distanceText;
// Calculated distance value
private float distance;
// Update is called once per frame
private void Update()
{
// Calculate distance value between character and checkpoint
distance = (checkpoint.transform.position - transform.position).magnitude;
// Display distance value via UI text
// distance.ToString("F1") shows value with 1 digit after period
// so 12.234 will be shown as 12.2 for example
// distance.ToString("F2") will show 12.23 in this case
distanceText.text = "Distance: " + distance.ToString("F1") + " meters";
}
}
然后我把它放在 Update() 中:
checkpoint.GetComponent<Renderer>().material.color = new Color(1, (255 - distance.ToString("F1")), 0, 0);
【问题讨论】:
-
代码现在做了什么?你想让它做什么呢?
-
255 - distance.ToString("F1")编译吗? -
控制台显示
Assets/Scripts/DistanceToCheckpoint.cs(29,76): error CS0019: Operator '-' cannot be applied to operands of type 'int' and 'string' -
我只是删除了
.ToString("F1"),检查点在 0 到 255 距离之间是黄色的,在它变成红色之后 -
我希望红色检查点靠近它时变成黑色
标签: c# unity3d gameobject