var barDisplay : float = 0;
var pos : Vector2 = new Vector2(20,40);
var size : Vector2 = new Vector2(60,20);
var progressBarEmpty : Texture2D;
var progressBarFull : Texture2D;
function OnGUI()
{
// draw the background:
GUI.BeginGroup (new Rect (pos.x, pos.y, size.x, size.y));
GUI.Box (Rect (0,0, size.x, size.y),progressBarEmpty);
// draw the filled-in part:
GUI.BeginGroup (new Rect (0, 0, size.x * barDisplay, size.y));
GUI.Box (Rect (0,0, size.x, size.y),progressBarFull);
GUI.EndGroup ();
GUI.EndGroup ();
}
function Update()
{
// for this example, the bar display is linked to the current time,
// however you would set this value based on your desired display
// eg, the loading progress, the player's health, or whatever.
barDisplay = Time.time * 0.05;
}
如何使用OnGUI统一制作几何破折号进度条?我尝试在线查找它,但找不到它。我正在构建类似Temple Temple的跑步游戏,我想向玩家展示还剩多少地图。
答案 0 :(得分:0)
用于进度条
您可以使用Unity滚动条对象制作所需的内容。 here上有一个很好的教程。本质上,是将滚动条对象添加到画布,然后从代码中更改滑块值。
用于滚动纹理
如果要在进度条上滚动纹理,则可以对放置在滑块上的图像进行动画处理。如果您不想手工制作动画,那么它会稍微复杂一些。理想情况下,您可以在代码中设置图像的纹理偏移量以使其滚动,但是在查找之后,我认为Unity不允许您在非3D对象上执行此操作。
如果您仍然希望它滚动并且不想为其绘制手绘动画,则可能需要考虑将UI蒙版组件(tutorial here)和内置2D组合在一起动画工具(tutorial here)。