做医疗器械网站怎么找高清大图,天津网站排名优化费用,wordpress安装伪静态,学校网站建设项目可行性分析博文简介#xff1a;
开发场景#xff1a;unity的3d场景#xff1b; 功能#xff1a;当设定的键被按下时#xff0c;进行物体朝左/右旋转#xff1b;
适用范围#xff1a;本文代码适用于设置3d物体朝左右旋转#xff0c;也适用于设置UI对象朝左右旋转#xf…博文简介
开发场景unity的3d场景 功能当设定的键被按下时进行物体朝左/右旋转
适用范围本文代码适用于设置3d物体朝左右旋转也适用于设置UI对象朝左右旋转
注可自定义按键作为物体旋转的按键这里使用常用的AD键来控制物体的左右旋转
若功能需求为根据鼠标朝左/右旋转限制物体旋转的角度
可参考本人的另一篇博文Unity功能——物体随鼠标朝左/右旋转带角度限制
1、监测按键触发
C# if (Input.GetKey(KeyCode.D)){...}
xlua if CS.UnityEngine.Input.GetKey(CS.UnityEngine..KeyCode.A) then ... end
if (Input.GetKey(KeyCode.D)){...}
--C# 改 xlua版if CS.UnityEngine.Input.GetKey(CS.UnityEngine..KeyCode.A) then--要实现的需求的功能代码
end
2、设置物体旋转
C# transform.Rotate(Vector3.forward * rotateSpeed);
xlua self.transform:Rotate(CS.UnityEngine.Vector3.forward * self.rotateSpeed)
transform.Rotate(- Vector3.forward * rotateSpeed);
--C# 改 xlua版注意使用冒号调用函数self.transform:Rotate(CS.UnityEngine.Vector3.forward * self.rotateSpeed)
3、完整功能代码 注使用hotfix把C#转xlua时对应的C#脚本上需要
1脚本引用using Xlua2类上面添加[Hotfix]标签3方法上添加[LuaCallCSharp]标签
private void MoveItem(){if (Input.GetKey(KeyCode.A))transform.Rotate(-Vector3.forward * rotateSpeed);else if (Input.GetKey(KeyCode.D))transform.Rotate(Vector3.forward * rotateSpeed);
}
xlua.private_accessible(CS.类名)
xlua.hotfix(CS.类名,方法名,function(self)if CS.UnityEngine.Input.GetKey(CS.UnityEngine.KeyCode.A) thenself.transform:Rotate(CS.UnityEngine.Vector3.forward * self.rotateSpeed)elseif CS.UnityEngine.Input.GetKey(CS.UnityEngine.KeyCode.D) thenself.transform:Rotate(-CS.UnityEngine.Vector3.forward * self.rotateSpeed)end
end)