【Unity学习】
文章目录c#脚本基本语句一、游戏启动的基本语句二、游戏运行的基本语句1.游戏运行的基本语句2.对物体的相关操作三、Unity组件的一些方法1.Rigidbody组件2.Collider组件3.Audio Source组件四、Unity脚本常用的方法实现1.角色移动和视角移动c#脚本基本语句一、游戏启动的基本语句publicGameObjectgo;publicGameObject[]gos;//Start()方法在游戏启动时执行一次。voidStart(){//设置游戏帧率Application.targetFrameRate120;//一般设置为60/120//鼠标箭头锁定Cursor.lockStateCursorLockMode.Locked;//获取物体currentGameObjectthis.gameObject;//获取脚本当前物体goGameObject.Find(名称);//根据名称获取物体goGameObject.FindWithTag(标签);//根据标签获取物体gosGameObject.FindGameObjectsWithTag(标签);//根据标签获取物体数组//创建游戏物体//四元数Unity定义旋转要用四元数,Euler方法能将Vector3变量转换为四元数quaternionqQuaternion.Euler(0,0,0);//实例一个物体定义位置和旋转再加一个参数可以定义父物体//这里的go一般放预制体Instantiate(go,newVector3(0,0,0),q);}二、游戏运行的基本语句1.游戏运行的基本语句voidUpdate(){//输出打印Debug.Log(hello world!);Debug.Log(当前物体名称:go.name);Debug.Log(当前物体位置:go.transform.position);Debug.Log(当前物体旋转:go.transform.rotation.eulerAngles);Debug.Log(当前物体大小:go.transform.localScale);//检测输入Input.GetKeyDown(KeyCode.A)//按键按下Input.GetKeyUp(KeyCode.A)//按键抬起Input.GetKey(KeyCode.A)//按住不松Input.GetAxis(Horizontal);//水平轴,按下A/D或左右方向键,返回值为-1到0到1的平滑过度Input.GetAxisRaw(Horizontal);//返回值只有-10或1Input.GetAxis(Vertical);//垂直轴,按下W/S或上下方向键,返回值为-1到0到1平滑过度Input.GetAxisRaw(Vertical);//返回值只有-10或1Input.GetKeyDown(KeyCode.Mouse0);//按下鼠标左键,两种皆可Input.GetMouseButtonDown(0);Input.GetKeyDown(KeyCode.Mouse1);//按下鼠标右键,两种皆可Input.GetMouseButtonDown(1);Input.GetAxis(Mouse ScrollWheel);//鼠标滚轮输入Input.GetAxis(Mouse X);//鼠标横向移动Input.GetAxis(Mouse Y);//鼠标竖向移动Debug.Log(鼠标位置为:Input.mousePosition);//鼠标位置信息}2.对物体的相关操作publicTransformtransform;publicGameObjectgoPrefab;publicVector3positionTarget;publicVector3rotationTarget;publicRigidbodyrb;publicvoidobject_transform(){//创建物体GameObjectgoInstantiate(goPrefab,transform.position,transform.rotation);//物体信息更改go.namename1;go.transform.positionnewVector3(10,10,10);go.transform.eulerAnglesnewVector3(0,45,0);go.transform.localScalenewVector3(2,2,2);//物体移动(第二个参数选择坐标系),两种皆可go.transform.positionpositionTarget;go.transform.Translate(positionTarget*Time.deltaTime,Space.Self);//物体旋转(第二个参数选择坐标系),两种皆可go.transform.eulerAnglesrotationTarget;go.transform.Rotate(rotationTarget*Time.deltaTime,Space.Self);//获取组件go.GetComponent组件名称();//物理模拟rb.AddForce(newVector3(100,0,0)*Time.deltaTime);//设置刚体推力rb.linearVelocitynewVector3(0,0,0);//设置刚体速度,可以实现带碰撞的移动rb.angularVelocitynewVector3(0,0,0);//设置刚体角速度,可以实现旋转//物体销毁Destroy(go);}三、Unity组件的一些方法1.Rigidbody组件刚体组件模拟物理效果//刚体碰撞privatevoidOnCollisionEnter(Collisioncollision){//Debug.Log(collision.gameObject.name);}//刚体分离privatevoidOnCollisionExit(Collisioncollision){//Debug.Log(collision.gameObject.name);}//刚体持续接触privatevoidOnCollisionStay(Collisioncollision){//Debug.Log(collision.gameObject.name);}2.Collider组件//触发器触发privatevoidOnTriggerEnter(Colliderother){//Debug.Log(other.gameObject.name);}//触发器分离privatevoidOnTriggerExit(Colliderother){//Debug.Log(other.gameObject.name);}//触发器持续触发privatevoidOnTriggerStay(Colliderother){//Debug.Log(other.gameObject.name);}3.Audio Source组件音频播放组件//存放组件publicAudioSourcead;//存放音频publicAudioClipaclip;publicAudioClipbgm;//播放音频,参数可设置音量ad.PlayOneShot(aclip,0.5f);ad.resourcebgm;//切换音频ad.Play();//播放音频四、Unity脚本常用的方法实现1.角色移动和视角移动键盘操控移动鼠标控制视角的实现publicVector3positionTarget;publicVector3rotationTarget;publicfloatspeedMove3f;publicfloatspeedRotate200f;//角色移动publicvoidmove(){positionTarget.xInput.GetAxis(Horizontal);positionTarget.zInput.GetAxis(Vertical);this.transform.Translate(positionTarget*speedMove*Time.deltaTime);rotationTarget.yInput.GetAxis(Mouse X);this.transform.Rotate(rotationTarget*speedRotate*Time.deltaTime);}摄像机射线碰撞检测鼠标点击操控移动的实现publicNavMeshAgentagent;//角色移动publicvoidmove(){if(Input.GetMouseButtonDown(1))//检测鼠标右键输入{RayrayCamera.main.ScreenPointToRay(Input.mousePosition);//从主摄像机向鼠标点击位置发出射线if(Physics.Raycast(ray,outRaycastHithit))//射线检测{if(hit.collider.CompareTag(标签))//通过标签检测是否点击到目标地板{agent.SetDestination(hit.point);//设置目标点}}}}

相关新闻

端粒延长29%?从“以色列35人”到“中国136人”:高压氧抗衰大样本临床研究的数据解读

端粒延长29%?从“以色列35人”到“中国136人”:高压氧抗衰大样本临床研究的数据解读

当“祖传文献”迎来中国验证2020年,以色列特拉维夫大学Shai Efrati团队在《Aging》发表研究:35名64岁以上老人经60次高压氧治疗,部分免疫细胞端粒长度增加超20%,衰老T细胞减少近37%。这项研究从此成为高压氧抗衰领域的“祖传文献”…

2026/10/16 23:31:34 阅读更多 →
流程引擎BPM设计之:流程二开的三种模式

流程引擎BPM设计之:流程二开的三种模式

.流程引擎BPM设计之:流程二开的三种模式 摘要 驰骋 BPM 主张:流程可以设计出来,业务却不能写进引擎内核。 流程设计完成后,要用脚本与流程引擎交互,在发送成功、发送前、退回、结束等生命周期点嵌入业务逻辑——这一能…

2026/10/17 10:35:00 阅读更多 →
第一阶段-第8天-NumPy入门

第一阶段-第8天-NumPy入门

今日目标 安装并熟悉NumPy理解数组与列表的区别掌握基本的NumPy运算理解向量化的好处 学习内容 1. 安装NumPy pip3 install numpy验证安装: import numpy as np print(np.__version__)2. 创建数组 import numpy as np# 从列表创建 a np.array([1, 2, 3, 4, 5]) pri…

2026/10/17 10:37:16 阅读更多 →

最新新闻

文献阅读神器实用指南:高效助力文献梳理与信息提取的阅读工具推荐

文献阅读神器实用指南:高效助力文献梳理与信息提取的阅读工具推荐

构建一个高质量的国外参考文献库,听起来很宏大,但其实就是把“找、管、用”这三件事做对。整个过程最关键的一步,是选对一个能陪你走完全程的“智能伙伴”。我强烈推荐 切问学术,它能让这件事从杂乱无序变得井井有条。 第一步&am…

2026/10/18 21:49:13 阅读更多 →
机器视觉实战:苹果品质分级系统的设计与工程化实现

机器视觉实战:苹果品质分级系统的设计与工程化实现

1. 从一个分拣难题说起:为什么苹果品质分级需要机器视觉过去几年我自己一直在折腾机器视觉相关的项目,最常见的需求不是人脸识别,也不是自动驾驶,而是各种“看着简单、做起来一堆坑”的传统工业分拣问题。苹果品质分级就是其中很有…

2026/10/18 21:49:13 阅读更多 →
Oracle存储过程教程:用TaoToken统一Key调试PL/SQL异常与性能

Oracle存储过程教程:用TaoToken统一Key调试PL/SQL异常与性能

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 21:49:13 阅读更多 →
基于Diffusion的图像修复与风格迁移系统毕业设计(源码+lw+部署文档+讲解等)

基于Diffusion的图像修复与风格迁移系统毕业设计(源码+lw+部署文档+讲解等)

博主介绍:✌ 专注于VUE,小程序,安卓,Java,python,物联网专业, 从事毕业指导,项目实战✌选取一个适合的毕业设计题目很重要。✌关注✌私信我✌具体的问题,我会尽力帮助你。一、研究目的随着数字媒体技术的快…

2026/10/18 21:49:13 阅读更多 →
Flutter断点续传实战:基于dio的Range请求与文件追加实现

Flutter断点续传实战:基于dio的Range请求与文件追加实现

断点续传这件事,做过的都知道,坑不在“断”上,在“续”上。你用Flutter做下载功能,网上搜方案十有八九会指向dio,但真把dio的DownloadStream、CancelToken、Range头这些揉在一起用,还是有不少细节值得掰扯。…

2026/10/18 21:49:13 阅读更多 →
Git cherry-pick实战:精准移植提交与解决冲突指南

Git cherry-pick实战:精准移植提交与解决冲突指南

Git 里有一个特别容易让人忽略、但几乎每个项目都迟早会用到的操作:把另一个分支上的某个提交单独搬过来。你不想整个分支合并过来,也不想去 rebase 一堆无关提交,就只想把那个修复了 bug 的提交拿过来,这时候git cherry-pick就是正解。这篇的内容完全围绕这个场景展开:什么时候…

2026/10/18 21:48:12 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:55:02 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →