private void OnEnable()
{
Tools.current = Tool.View;
Tools.viewTool = ViewTool.FPS;
}
工具有一些属性,如Rect,Scale,Rotate ...... 我想使用鼠标滚轮向下选择工具属性。
答案 0 :(得分:1)
不是很复杂。
1 。使用Input.GetAxisRaw
而不是Input.GetAxis
读取鼠标滚动输入,因为使用Input.GetAxis
会平滑您不需要的滚动值。< / p>
2 。检查滚动值是否超过某个阈值。如果是,则鼠标滚轮向上滚动。如果它小于那个值,那么它就会向下滚动。
3 。结果#2 ,创建一个名为“level”的全局整数,您可以根据滚轮的方向递增或递减。
4 。Tool枚举值从-1
开始到4
,因为它的声明如下:
public enum Tool
{
None = -1,
View = 0,
Move = 1,
Rotate = 2,
Scale = 3,
Rect = 4
}
将“strong”变量从#3 钳制到-1
和4
之间的值Mathf.Clamp(level, -1, 4);
。
5 。最后,将int“level”变量强制转换为Tool枚举,并将结果分配给Tools.current
。
使用int来强制转换为Tool枚举可以防止使用许多if或switch语句。
float wheelThreshold = 0.09f;
int level = -1;
void Update()
{
level = (int)Tools.current;
float mouseScrollDir = Input.GetAxisRaw("Mouse ScrollWheel");
if (mouseScrollDir > wheelThreshold)
{
Debug.Log("Scroll Up");
level++;
level = Mathf.Clamp(level, -1, 4);
Tools.current = (Tool)level;
}
else if (mouseScrollDir < -wheelThreshold)
{
Debug.Log("Scroll Down");
level--;
level = Mathf.Clamp(level, -1, 4);
Tools.current = (Tool)level;
}
}
<强>结果强>:
答案 1 :(得分:0)
如果您使用的是统一应用,可以试试这个:
var d = Input.GetAxis("Mouse ScrollWheel");
if (d > 0f)
{
// scroll up
}
else if (d < 0f)
{
// scroll down
}