【问题标题】:Unity3d with c# scriptUnity3d 与 c# 脚本
【发布时间】:2013-02-20 04:40:16
【问题描述】:

您好,我想在我的 unity3d 项目中添加一个滑块,我正在使用 c# 脚本和以下代码。

 public float hSbarValue;
 void OnGUI() {
         hSbarValue = GUI.HorizontalScrollbar(new Rect(25, 25, 100, 30), hSbarValue, 1.0F, 0.0F, 100.0F);
    }

这会绘制一个滑块,我必须使用鼠标拖动它。

我想把它变成一个可以自行移动的滑块(就像乒乓球效果一样),直到按下按钮,然后将值存储在 hSbarValue 变量中。

感谢任何帮助

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    您可以尝试使用协程来增加它的值并在按下按钮时终止协程。比如:

    IEnumerator IncrementValue() {
        while (true) { // Or a better limit
            hSbarValue += someIncrementValue;
            yield return new WaitForSeconds(1); // Or other value
        }
    }
    
    void Start {
        StartCoroutine("IncrementValue");
    }
    
    // later inside the button press handler
    StopCoroutine("IncrementValue");
    

    【讨论】:

    • 为我工作。一个注释,操作提到了一些关于“乒乓”效果的东西,你的协程只会增加,所以滑块永远不会回到 0。(我假设 ping pong 意味着来回)
    • @jerdak 我没有写代码让他直接使用,显然需要根据他的需要修改它,如果是乒乓球效果他需要检查它是否需要增加或减少。他可以付钱给我写他需要的东西:P
    【解决方案2】:

    hSbarValue = GUI.Horizo​​ntalScrollbar(new Rect(25, 25, 100, 30), Mathf.PingPong(Time.time*5.0f, 20), 1.0F, 0.0F, 50.0F);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多