【Unity】P4 脚本文件(基础)
Unity脚本文件(基础)
- 适配的C#代码编辑器
- 如何添加一个脚本文件
- 获取蘑菇当前位置
- 基础代码
- 改变物体位置
- 帧与帧更新
前言
上一篇博文主要围绕Unity Inspector部分,围绕组件,资源文件,父子节点部分做介绍。
链接:https://blog.csdn.net/weixin_43098506/article/details/129274582
本篇博文将主要开始代码编辑部分,首先介绍Unity适配的C#代码编辑器,需要对Java或者C++有基础理解;然后将介绍帧的概念,将在通过脚本文件移动物体部分结束。
下一篇博文将深入到代码中,研究物体的旋转,欧拉角法以及通过Rotate进行旋转;
链接:
正题
适配的C#代码编辑器
推荐使用 Visual Studio,其可以与Unity适配,在输入函数以及名称时会产生联想以方便书写代码。
Windows-Community 版本的下载链接:https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=Community&channel=Release&version=VS2022&source=VSLandingPage&cid=2030&passive=false
其他用户自行到官方下载Community免费版。
下载后安装,只需要安装Unity游戏部分即可

下载安装完成后打开Unity,在Edit中选择Preference
然后在 External Tools 中选择 Microsoft Visual Studio 2022

如此选择后,构建了Unity与VS2022的桥梁,双击代码会自动使用VS打开并可以产生联想。
注意,可能会出现无联想的情况,需要重新执行Edit中Preference步骤以解决。
如何添加一个脚本文件
如我们想让蘑菇在地板上沿着Z轴平移,请问如何做?

步骤:
首先在Assets中创建Scripts文件夹,用于记录所有代码文件。
然后在Scripts文件夹中新建代码文件 C# Script

创建完成后,双击会自动通过 Visual Studio 打开,注意C#文件命名建议符合“大驼峰”规则。
打开VS后第一步检查文件名称与类名称是否相同,不相同会出现错误。

没有问题我们进入下一步,开始代码编辑。
获取蘑菇当前位置
在 void Start() 中加入代码
Debug.Log("蘑菇的名字为:" + this.gameObject.name);
Debug.Log("蘑菇的位置在:" + this.gameObject.transform.position.ToString("F1"));
保存代码后,返回到Unity中,下一步我们将代码文件赋给蘑菇物体:

执行游戏。单机执行,再次点击 ▶ 取消执行游戏状态。

执行后效果以及打印结果:
发现其输出名称以及位置坐标信息正确。

代码解析:
获取当前指定游戏物体的名称;
this.gameObject.name
获取当前指定游戏物体的位置信息并且保留一位小数;
this.gameObject.transform.position.ToString("F1")
基础代码
| 代码 | 含义 |
|---|---|
| this | 当前脚本组件 |
| this.gameObject | 当前物体 |
| this.gameObject.name | 当前物体名称 |
| this.gameObject.transform | 当前物体下的transform属性 |
| this.gameObject.position | 当前物体下的世界坐标 |
| this.gameObject.localPosition | 当前物体的本地坐标,或称相对于父物体的坐标 |
改变物体位置
物体的位置属性为localPosition,修改物体的localPosition属性以实现物体的移动。localPosition 为包含三个值的向量 Vector3(x,y,z);
this.transform.localPosition = new Vector3(0,0,5);
代码保存后,运行发现蘑菇的位置发生变化。
帧与帧更新
Frame:游戏帧
FrameRate:帧率,刷新率
FPS:Frames Per Second:每秒更新多少帧
在 Visual Studio 中,代码主要有两个方法,一个是Start,一个是Update。每更新一帧时,都将调用一次Update方法。
与帧相关的基础代码有:
| 代码 | 含义 |
|---|---|
Time.time | 取得当前游戏时间 |
Time.deltaTime | 距上帧的时间差 |
Application.targetFrameRate=60 | 设定近似帧率 |
需要注意的是,帧率是在不断变化的,没有固定值,只能通过上述代码设定近似帧率。为什么帧率是不断变化的???
影响帧率的有很多因素,主要为我们电脑当前执行的所有程序。当我们执行很多程序时,不可避免的处理器繁忙,会导致帧率的变化。
结合上述所有知识,若我们想要让物体匀速运动,该如何办?
上述知识小结:
- Update方法每一帧调用一次;
- 帧率是在不断变化的,没有固定值,只能设定近似帧率;
- 改变物体位置的code以及获取帧时间差的code。
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;public class MoveToZ : MonoBehaviour
{// Start is called before the first frame updatefloat speed = 5;void Start(){}// Update is called once per framevoid Update(){float distance = speed * Time.deltaTime;this.transform.Translate(0, 0, distance);}
}
------ End ------
上一篇博文主要围绕Unity Inspector部分,围绕组件,资源文件,父子节点部分做介绍。
链接:https://blog.csdn.net/weixin_43098506/article/details/129274582
下一篇博文将深入到代码中,研究物体的旋转,欧拉角法以及通过Rotate进行旋转;
链接:
相关文章:
【Unity】P4 脚本文件(基础)
Unity脚本文件(基础)适配的C#代码编辑器如何添加一个脚本文件获取蘑菇当前位置基础代码改变物体位置帧与帧更新前言 上一篇博文主要围绕Unity Inspector部分,围绕组件,资源文件,父子节点部分做介绍。 链接:…...
(2023版)零基础入门网络安全/Web安全,收藏这一篇就够了
由于我之前写了不少网络安全技术相关的文章和回答,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人私信问我: 我刚入门网络安全,该怎么学? 要学哪些东西? 有哪些方向? 怎么选&#x…...
Vue3电商项目实战-登录模块2【05-登录-表单校验、06-登录-消息提示组件封装、07-登录-账户登录、08-登录-手机号登录、09-退出登录】
文章目录05-登录-表单校验06-登录-消息提示组件封装07-登录-账户登录08-登录-手机号登录09-退出登录05-登录-表单校验 文档:https://vee-validate.logaretm.com/v4/ 支持vue3.0 第一步:安装 执行命令 npm i vee-validate4.0.3 第二步:导入 …...
Python 中都有哪些常见的错误和异常?
本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注! 作者| 慕课网精英讲师 朱广蔚 Python 程序的执行过程中,当发生错误时会引起一个事件,该事件被称为异常。例如: 如果程…...
51单片机-1
1,单片机内部集成了CPU,RAM,ROM,定时器,中断系统,通讯接口等一系列电脑的常用硬件功能。单片机和计算机相比,单片机是一个袖珍版计算机 2,单片机里有中央处理器(CPU&…...
【Azure 架构师学习笔记】-Azure Data Factory (4)-触发器详解-事件触发器
本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 接上文【Azure 架构师学习笔记】-Azure Data Factory (3)-触发器详解-翻转窗口 前言 事件触发指的是存储事件,所以在新版的ADF 中,已经明确了是“存储事件”,…...
【项目设计】高并发内存池(三)[CentralCache的实现]
🎇C学习历程:入门 博客主页:一起去看日落吗持续分享博主的C学习历程博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 也许你现在做的事情,暂时看不到成果,但不要忘记&…...
2023年,35岁测试工程师只能被“优化裁员”吗?肯定不是····
国内的互联网行业发展较快,所以造成了技术研发类员工工作强度比较大,同时技术的快速更新又需要员工不断的学习新的技术。因此淘汰率也比较高,超过35岁的基层研发类员工,往往因为家庭原因、身体原因,比较难以跟得上工作…...
gitlab部署使用,jenkins部署使用
gitlab部署使用,jenkins部署使用在线安装gitlab下载gitlab安装gitlab使用gitlab设置中文修改管理员密码创建组,创建项目,创建用户jenkins下载jenkins安装jenkin使用jenkins更改管理员密码配置拉取代码配置登录gitlab拉取代码的账号密码配置项目配置gitlab仓库配置构…...
从零开始的机械臂yolov5抓取gazebo仿真(环境搭建篇下)
sunday功能包使用介绍以及开源 sunday我给自己机械臂的命名,原型是innfos的gluon机械臂。通过sw模型文件转urdf。Sunday项目主要由六个功能包sunday_description、sunday_gazebo、sunday_moveit_config、yolov5_ros、vacuum_plugin、realsense_ros_gazebo组成&…...
GCC编译器 MinGW的下载安装使用教程
哎 总所周知 gcc可以用来编译C 和C。在linux广泛应用,那么window怎么使用gcc呢。就要用到gcc的window工具----MInGW,安装好之后,直接可以在windows的dos界面编译。下面讲解安装使用过程。1.官网下载MinGW - Minimalist GNU for Windows downl…...
【项目实战】SpringMVC配置全局属性,是实现WebMvcConfigurer接口,还是直接继承WebMvcConfigurationSupport类?
一、说明 官方推荐以下两种方式来配置全局的SpringMVC的相关属性 方式一:实现WebMvcConfigurer接口(推荐)方式二:直接继承WebMvcConfigurationSupport类。介绍一下两者区别吧。 二、 WebMvcConfigurer介绍 WebMvcConfigurer是一个接口,用于配置全局的SpringMVC的相关属…...
房产营销、地产中介如何高效低成本获客?
数字化对企业而言,机遇和挑战并存。房产企业可借助数字化加强日益扩大的业务规模和业务领域管理,以提升管理效率,降低管理难度;基于数字化技术加强客户的服务体验,进而收集多业态客户和场景数据,拓展创新业…...
Kotlin-作用域函数
在对象的上下文中执行代码块。当您在提供lambda表达式的对象上调用这样的函数时,它会形成一个临时作用域。在此范围内,可以不带名称地访问对象。这样的函数称为作用域函数。 let run with apply also 作用域函数不会引入任何新的技术功能,但它…...
QNX7.1 交叉编译开源库
1.下载QNX7.1 SDK并解压 ITL:~/work/tiqnx710$ ls -l 总用量 16 drwxrwxr-x 4 xxx4096 1月 28 13:38 host -rwxrwxr-x 1 xxx 972 1月 28 13:38 qnxsdp-env.bat -rwxrwxr-x 1 xxx 1676 1月 28 13:38 qnxsdp-env.sh drwxrwxr-x 3 xxx 4096 1月 28 13:38 target xxxITL:~/work/ti…...
论文投稿指南——中文核心期刊推荐(外国语言)
【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…...
Fabric系列 - 链码-内部链码的特性
(1)Fabric repo下的案例 Chaincode(1.4的目录结构) fabric/examples/chaincode/go ├── example02 #一个简单的转账合约 ├── eventsender #发送事件通知 ├── passthru #调用其他链码(或者其他channel的链码)example02 (转账) 一个简单的转账合约。该链码简单实…...
NetApp SnapCenter 备份管理 ——借助应用程序一致的数据备份管理,简化混合云操作
NetApp SnapCenter 简单、可扩展、赋权:跨 Data Fabric 的企业级数据保护和克隆管理 主要优势 • 利用与应用程序集成的工作流和预定义策略简化备份、恢复和克隆管理。 • 借助基于存储的数据管理功能提高性能和可用性,并缩短测试和开发用时。 • 提供基…...
Java内置队列和高性能队列Disruptor
一、队列简介 队列是一种特殊的线性表,遵循先入先出、后入后出(FIFO)的基本原则,一般来说,它只允许在表的前端进行删除操作,而在表的后端进行插入操作,但是java的某些队列运行在任何地方插入删…...
比特数据结构与算法(第四章_下)二叉树的遍历
本章将会详细讲解二叉树遍历的四种方式,分别为前序遍历、中序遍历、后续遍历和层序遍历。在学习遍历之前,会先带大家回顾一下二叉树的基本概念。学习二叉树的基本操作前,需要先创建一颗二叉树,然后才能学习其相关的基本操作&#…...
UE5 学习系列(二)用户操作界面及介绍
这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
剑指offer20_链表中环的入口节点
链表中环的入口节点 给定一个链表,若其中包含环,则输出环的入口节点。 若其中不包含环,则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
select、poll、epoll 与 Reactor 模式
在高并发网络编程领域,高效处理大量连接和 I/O 事件是系统性能的关键。select、poll、epoll 作为 I/O 多路复用技术的代表,以及基于它们实现的 Reactor 模式,为开发者提供了强大的工具。本文将深入探讨这些技术的底层原理、优缺点。 一、I…...
Mobile ALOHA全身模仿学习
一、题目 Mobile ALOHA:通过低成本全身远程操作学习双手移动操作 传统模仿学习(Imitation Learning)缺点:聚焦与桌面操作,缺乏通用任务所需的移动性和灵活性 本论文优点:(1)在ALOHA…...
sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...
DBLP数据库是什么?
DBLP(Digital Bibliography & Library Project)Computer Science Bibliography是全球著名的计算机科学出版物的开放书目数据库。DBLP所收录的期刊和会议论文质量较高,数据库文献更新速度很快,很好地反映了国际计算机科学学术研…...
