【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的某些队列运行在任何地方插入删…...
比特数据结构与算法(第四章_下)二叉树的遍历
本章将会详细讲解二叉树遍历的四种方式,分别为前序遍历、中序遍历、后续遍历和层序遍历。在学习遍历之前,会先带大家回顾一下二叉树的基本概念。学习二叉树的基本操作前,需要先创建一颗二叉树,然后才能学习其相关的基本操作&#…...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
线程同步:确保多线程程序的安全与高效!
全文目录: 开篇语前序前言第一部分:线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分:synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分ÿ…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
关于 WASM:1. WASM 基础原理
一、WASM 简介 1.1 WebAssembly 是什么? WebAssembly(WASM) 是一种能在现代浏览器中高效运行的二进制指令格式,它不是传统的编程语言,而是一种 低级字节码格式,可由高级语言(如 C、C、Rust&am…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
云原生玩法三问:构建自定义开发环境
云原生玩法三问:构建自定义开发环境 引言 临时运维一个古董项目,无文档,无环境,无交接人,俗称三无。 运行设备的环境老,本地环境版本高,ssh不过去。正好最近对 腾讯出品的云原生 cnb 感兴趣&…...
安全突围:重塑内生安全体系:齐向东在2025年BCS大会的演讲
文章目录 前言第一部分:体系力量是突围之钥第一重困境是体系思想落地不畅。第二重困境是大小体系融合瓶颈。第三重困境是“小体系”运营梗阻。 第二部分:体系矛盾是突围之障一是数据孤岛的障碍。二是投入不足的障碍。三是新旧兼容难的障碍。 第三部分&am…...
MFC 抛体运动模拟:常见问题解决与界面美化
在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...
论文阅读:LLM4Drive: A Survey of Large Language Models for Autonomous Driving
地址:LLM4Drive: A Survey of Large Language Models for Autonomous Driving 摘要翻译 自动驾驶技术作为推动交通和城市出行变革的催化剂,正从基于规则的系统向数据驱动策略转变。传统的模块化系统受限于级联模块间的累积误差和缺乏灵活性的预设规则。…...
Spring Security 认证流程——补充
一、认证流程概述 Spring Security 的认证流程基于 过滤器链(Filter Chain),核心组件包括 UsernamePasswordAuthenticationFilter、AuthenticationManager、UserDetailsService 等。整个流程可分为以下步骤: 用户提交登录请求拦…...
