Unity功能——通过按键设置物体朝左/右旋转(含C#转xlua版)

博文简介:

开发场景:unity的3d场景;        功能:当设定的键被按下时,进行物体朝左/右旋转;

适用范围:本文代码适用于设置3d物体朝左右旋转,也适用于设置UI对象朝左右旋转;

注:可自定义按键作为物体旋转的按键,这里使用常用的A,D键来控制物体的左右旋转;

若功能需求为:根据鼠标朝左/右旋转;限制物体旋转的角度;

可参考本人的另一篇博文: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 Xlua;(2)类上面添加[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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/16480.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第22讲:RBD块存储COW克隆解除父子镜像的依赖关系

RBD块存储COW克隆解除父子镜像的依赖关系 1.COW镜像克隆存在的依赖关系 在前面使用copy-on-write机制基于快照做出来的链接克隆,与快照依赖性很强,如果快照损坏或者丢失,那么克隆的镜像将无法使用,使用这个镜像创建的虚拟机也会…

深度学习模型

深度学习模型 深度学习网络模型是人工智能领域的重要分支,它通过模拟人脑神经网络的工作方式来处理数据并识别模式。以下是对深度学习网络模型的一些主要类型的详细概述: 卷积神经网络(Convolutional Neural Network, CNN) 结构&a…

数据库模块名称汇总

1.Oracle。 2.SQLServer。

MyBatis中的Where标签:提升你的SQL查询效率

哈喽&#xff0c;大家好&#xff0c;我是木头左&#xff01; 理解MyBatis的Where标签 MyBatis是一款优秀的持久层框架&#xff0c;它提供了许多强大的标签来帮助编写更优雅、高效的SQL语句。其中&#xff0c;<where>标签是使用频率极高的一个&#xff0c;它能够自动处理…

【分别介绍在vue2和vue3下如何使用ElementUI的图标组件,并举例说明】

在Vue 2和Vue 3下使用Element UI的图标组件&#xff0c;其方法和步骤有所不同。以下将分别进行介绍&#xff0c;并给出相应的示例。 Vue 2下使用Element UI的图标组件 安装Element UI 首先&#xff0c;你需要确保已经安装了Vue 2项目。然后&#xff0c;使用npm或yarn安装Eleme…

Mac配置node环境

1.下载nvm(node版本管理工具&#xff0c;同Anaconda对Python的关系&#xff09;。 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash 2.配置vi ~/.zshrc文件&#xff0c;添加如下配置&#xff1a; export NVM_DIR"$HOME/.nvm" [ -…

git生成公钥私钥

如果您在安装 Git 后没有看到 .ssh 目录,这是正常的。.ssh 目录并不是 Git 自动创建的,而是需要您手动创建和配置。 以下是一般的步骤: 打开您的终端或命令提示符。 检查是否已经生成了 SSH 密钥对: ls -al ~/.ssh如果看到 id_rsa 和 id_rsa.pub 文件,说明已经有 SSH 密钥对了…

pytest:指定测试用例执行顺序

在自动化测试中&#xff0c;测试用例的执行顺序有时对测试结果具有重要影响。本文将介绍如何在pytest框架中使用pytest-ordering插件以及Collection hooks来控制测试用例的执行顺序。 方式1&#xff1a; 使用pytest-ordering插件控制执行顺序 1.1 安装pytest-ordering插件 首…

生命在于学习——Python人工智能原理(1.1)

说明&#xff1a;今年学一部分人工智能方向的知识&#xff0c;网安也会穿插&#xff0c;看后续如何将二者结合起来。 一、人工智能的基本知识 1、人工智能的起源 1956年美国达特茅斯学院召开了一个夏季论班&#xff0c;首次提出人工智能的概念。 1950年图灵提出了图灵测试&a…

springboot + Vue前后端项目(第十二记)

项目实战第十二记 1.写在前面2. 整合Echarts2.1 vue安装Echarts2.2 使用Echarts2.3 EchartsController编写2.4 Home.vue编写 总结写在最后 1.写在前面 本篇主要讲解系统整合Echarts 2. 整合Echarts 2.1 vue安装Echarts npm i echarts -S2.2 使用Echarts vue中使用echarts的…

Thinkphp5内核宠物领养平台H5源码

源码介绍 Thinkphp5内核流浪猫流浪狗宠物领养平台H5源码 可封装APP&#xff0c;适合做猫狗宠物类的发信息发布&#xff0c;当然懂的修改一下&#xff0c;做其他信息发布也是可以的。 源码预览 源码下载 https://download.csdn.net/download/huayula/89361685

React项目,结合 Antd 的Upload上传组件实现上传前校验

背景 最近工作中&#xff0c;遇到这样一个需求&#xff1a;在登录首页&#xff0c;开发一个上传文件的功能&#xff0c;用户可以在该页面点击该区域上传文件&#xff0c;但是点击前需要做一些判断&#xff0c;若用户未登录&#xff0c;则直接弹出登录弹框&#xff1b;否则&…

Python 开心消消乐

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

《德米安:彷徨少年时》

文前 我之所愿无非是尝试依本性而生活&#xff0c; 却缘何如此之难&#xff1f; 强盗 疏于独立思考和自我评判的人只能顺应现成的世俗法则&#xff0c;让生活变轻松。其他人则有自己的戒条&#xff1a;正派人惯常做的事于他可能是禁忌&#xff0c;而他自认合理的或许遭他人唾…

机器学习笔记(概念)

一.基础概念 1.机器学习的实质为&#xff1a;根据现有数据,寻找输入数据和输出数据的映射关系/函数 2.机器学习的任务&#xff1a; ​ 回归&#xff1a;输出为连续值 ​ 分类&#xff1a;输出为离散值 ​ 聚类&#xff1a;无标记信息的输出(例如根据瓜的外观分为两部分) …

自动驾驶技术现状与需求分析

随着科技的不断进步和智能化浪潮的席卷&#xff0c;自动驾驶技术已成为当今交通领域的热点话题。本文旨在深入探讨自动驾驶技术的当前发展状况&#xff0c;并对其未来的市场需求进行细致分析。首先&#xff0c;我们将回顾自动驾驶技术的起源、发展历程以及当前的技术水平&#…

探秘SpringBoot默认线程池:了解其运行原理与工作方式(@Async和ThreadPoolTaskExecutor)

文章目录 文章导图Spring封装的几种线程池SpringBoot默认线程池TaskExecutionAutoConfiguration&#xff08;SpringBoot 2.1后&#xff09;主要作用优势使用场景如果没有它 2.1版本以后如何查看参数方式一&#xff1a;通过Async注解--采用ThreadPoolTaskExecutordetermineAsync…

光储充一体化平台解决方案——慧哥充电桩开源系统

慧哥充电桩开源平台 慧哥充电桩开源系统 源码下载地址https://gitee.com/chouleng/lengzicharge-cloud 光储充一体化平台解决方案 一、项目背景和目标 随着新能源汽车的普及和可再生能源的发展&#xff0c;光储充一体化平台应运而生。该平台旨在整合光伏发电、储能系统和充电…

Linux - crond任务调度、at定时任务

1 crontab 进行-定时任务的设置 1&#xff09;概述&#xff1a; 任务调度&#xff1a;是指系统在某个时间执行的特定的命令或程序。 任务调度分类&#xff1a; 系统工作&#xff1a;有些重要的工作必须周而复始地执行。如病毒扫描等个别用户工作&#xff1a;个别用户可能希…

数据库(7)——DDL表操作2

添加字段 ALTER TABLE 表名 ADD 字段名 类型 [COMMENT 注释] [约束]; 可以观察到student_information表中成功添加了名为“class”的字段。 修改字段 修改数据类型 ALTER TABLE 表名 MODIFY 字段名 新数据类型&#xff08;长度&#xff09;; 修改字段名和字段类型 ALTER TABLE…