var playName = "None";
static var currentControl ;
function Update() {
if( currentControl)
return;//当有任何输入框被点击时屏蔽之后的内容
if (Input.GetKey(KeyCode.UpArrow)||Input.GetKey(KeyCode.W)){
transform.Translate(Vector3.forward*0.5);
}
if (Input.GetKey(KeyCode.DownArrow)||Input.GetKey(KeyCode.S)){
transform.Translate(Vector3.forward*-0.5);
}
if (Input.GetKey(KeyCode.LeftArrow)||Input.GetKey(KeyCode.A)){
transform.Rotate(Vector3.down *2);
}
if (Input.GetKey(KeyCode.RightArrow)||Input.GetKey(KeyCode.D)){
transform.Rotate(Vector3.up *2);
}
}
function OnGUI (){
playName = GUI.TextField(Rect(10,10,100,20),playName);
//当鼠标 按在除输入框的 任意位置时
if( Input.GetMouseButtonDown( 0 ) && GUIUtility.hotControl == 0 )
GUIUtility.keyboardControl = 0;
currentControl = GUIUtility.keyboardControl ;
}
ps:不管输入框在那个Scrpit中,只要在想屏蔽的地方的OnGUI加上面的代码就行,
if( Input.GetMouseButtonDown( 0 ) && GUIUtility.hotControl == 0 )
GUIUtility.keyboardControl = 0;不用重复加入。
输入文字时让人物停止不动的代码
最新推荐文章于 2025-05-19 15:14:50 发布
本文介绍了一个Unity中的简单脚本,该脚本通过键盘输入来控制游戏对象的移动和旋转,并利用OnGUI函数实现了一个简单的文本输入框功能。此外,还提供了一种方法来避免输入框获得焦点时对游戏逻辑的影响。

674

被折叠的 条评论
为什么被折叠?



