当前位置: 首页 > news >正文

6. unity之脚本

1. 说明

当整个游戏运行起来之后,我们无法再借助鼠标来控制物体,此时可以使用脚本来更改物体的各种姿态,驱动游戏的整体运动逻辑。

2. 脚本添加

首先在Assets目录中,新创建一个Scripts文件夹,在该文件内右键鼠标选择创建脚本选项,即可创建一个脚本文件,可命名为SampleLogic,如下图:
在这里插入图片描述
然后,鼠标双击创建的脚本文件,即可使用visual studio打开文件,在其中进行代码编辑,简单加入一行代码:
在这里插入图片描述
最后,需要将这个脚本文件挂载到物体模型上,也就是当成一个组件添加到物体本身,相当于给这个脚本一个寄宿的载体。选择一个物体,在其右侧属性窗口的最下侧,直接将脚本拖放过去,如下图:
在这里插入图片描述
拖放成功后,会发现在其属性组件中,会多一个Script组件,当然,也可以使用Add Component为物体添加脚本文件,如下图:
在这里插入图片描述
点击Scene窗口上方的运行按钮后,即可运行游戏,同时脚本也会被运行,再次点击此按钮,会结束运行,如下图:
C#脚本文件名必须和类名保持一致,否则无法挂载到物体上,若要修改类名,需要在Visual Studio中对类名进行修改。
在这里插入图片描述

3. 脚本中获取当前物体

若想通过脚本挂载方式控制当前物体的运动,那么需要在脚本中先获取到这个物体,然后再写代码对这个物体的相关属性进行设置,可以使用gameObject来获取,详见代码注释:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Debug.Log("** 开始测试.... **");GameObject obj = this.gameObject;//获取当前物体本身(this代表当前脚本组件)string name = this.gameObject.name;//获取当前物体的名称Debug.Log("当前物体名称为:" + name);Transform tr = this.gameObject.transform;//获取当前物体的transform组件Vector3 vec = tr.position;//获取当前物体的坐标float posX = tr.position.x;//获取当前物体的x坐标值float posY = tr.position.y;//获取当前物体的y坐标值float posZ = tr.position.z;//获取当前物体的z坐标值Debug.Log("物体当前坐标为:" + vec + " " + "X:" + posX + "Y:" + posY + "Z:" + posZ);}// Update is called once per framevoid Update(){}
}

4. 物体坐标

transform.position --> 世界坐标
transform.localPosition --> 本地坐标***(一般使用这个)***,localPosition的值就是在属性窗口中设置的值
一般获取物体的坐标有两种方式:
①:this.gameObject.transform.position
②:this.transform.position(简化版)
对物体的坐标进行设置:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){this.transform.position = new Vector3(1.0f, 1.5f, 1.0f);}// Update is called once per framevoid Update(){}
}

5. 脚本解释

从上面的代码中可以看到,一个脚本包含两个基本的函数,一个是***start()函数,一个是update()***函数
start():游戏运行起来后,此函数只执行一次,就是游戏刚启动时被执行
update():游戏运行后,每更新一下画面,该函数就会被执行一次。可以为unity设置帧率,让其以一定的速率更新画面

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class SampleLogic : MonoBehaviour
{// Start is called before the first frame updatevoid Start(){Application.targetFrameRate = 60;//设定帧更新速率}// Update is called once per framevoid Update(){}
}

持续更新中,请大家多多关注…

相关文章:

6. unity之脚本

1. 说明 当整个游戏运行起来之后,我们无法再借助鼠标来控制物体,此时可以使用脚本来更改物体的各种姿态,驱动游戏的整体运动逻辑。 2. 脚本添加 首先在Assets目录中,新创建一个Scripts文件夹,在该文件内右键鼠标选择…...

flink-note笔记:flink-state模块中broadcast state(广播状态)解析

github开源项目flink-note的笔记。本博客的实现代码都写在项目的flink-state/src/main/java/state/operator/BroadcastStateDemo.java文件中。 项目github地址: github 1. 广播状态是什么 网上关于flink广播变量、广播状态的讲解很杂。我翻了flink官网发现,实际上在1.15里面…...

vue——预览PDF

下载插件 npm install --save vue-pdf创建组件 <template><div class"ins-submit-docs-content ins-submit-docs-pdf"><div v-if"loading" style"position: absolute; top: 40%; width: 100%;text-align: center;"><el-l…...

数据库复习

什么是数据库系统 数据库系统是指在计算机系统中引入数据库后构成的系统&#xff0c;一般由数据库、数据库管理系统(及其开发工具)、应用系统、数据库管理员和用户构成 数据库系统的特点是什么&#xff1f; 数据结构化数据的共享性高&#xff0c;冗余度低且易扩充数据独立性高数…...

vscode插件推荐

文章目录前言一、vscode插件推荐&#xff1f;1、 Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code2、Auto Close Tag3、Auto Import3、Error Lens4、vscode-icons5、ES7 React/Redux/React-Native snippets6、GitLens — Git supercharged7、JavaScript…...

THUPC2023初赛总结

今天参加了THUPC2023初赛&#xff0c;感觉还行。 比赛本来是11:00-16:00&#xff0c;但出了点问题&#xff0c;比赛延迟了十分钟。 刚开始&#xff0c;我从第一题往后看&#xff0c;寻找简单的题。 过了一会儿&#xff0c;一看排行榜&#xff0c;怎么最后一题全是绿的&#…...

unity知识点小结02

虚拟轴 虚拟轴就是一个数值在-11内的轴&#xff0c;这个数轴上重要的数值就是-1,0和1。当使用按键模拟一个完整的虚拟轴时需要用到两个按键&#xff0c;即将按键1设置为负轴按键&#xff0c;按键2设置为正轴按键。在没有按下任何按键的时候&#xff0c;虚拟轴的数值为0&#xf…...

总线(四)Modbus总线 协议

文章目录Modbus技术背景Modbus OSI分布Moudbus分类通讯过程Moudbus协议通信过程以及报文解析RTU 与 ASCII 收发数据区别Modbus技术背景 Modbus是一种串行通信协议。 1971年&#xff0c;Modicon公司首次退出Modbus协议&#xff0c;ModbusRTU和Modbus ASCII诞生于此。 后来施耐德…...

Cadence Allegro 导出Component Report详解

⏪《上一篇》   🏡《总目录》   ⏩《下一篇》 目录 1,概述2,Component Report作用3,Component Report示例4,Component Report导出方法4.1,方法14,2,方法2B站关注“硬小二”浏览更多演示视频 1,...

程序猿成长之路之密码学篇-DES算法详解

DES的算法实现原理详情请见 https://blog.csdn.net/qq_31236027/article/details/128209185 DES算法密钥获取详情请见 https://blog.csdn.net/qq_31236027/article/details/129224730 编码工具类获取详见 https://blog.csdn.net/qq_31236027/article/details/128579451 DES算法…...

maven生命周期、阶段与默认绑定插件梳理

maven生命周期、阶段与默认绑定插件梳理 CSDN博客 码云源码 1.maven生命周期、阶段与默认绑定插件 序号生命周期lifecycle阶段phase默认绑定插件(链接官网)默认绑定插件(链接maven库)说明1cleancleanmaven-clean-pluginmaven-clean-plugin清理2.1buildvalidate——验证2.2b…...

【数学基础】

文章目录『 第1讲 高等数学预备知识 』1.1 函数的概念与特性函数的四种特性【 重要结论 】1.2 函数的图像直角坐标系下的图像极坐标系下的图像参数方程1.3 常用基础知识【 情报#1 】『 第2讲 数列极限 』2.1 引言2.2 求数列极限【 情报#2 】『 第1讲 高等数学预备知识 』 1.1 …...

网上电子商城的设计与实现

技术&#xff1a;Java、JSP等摘要&#xff1a;21 世纪以来&#xff0c;人类经济高速发展&#xff0c;人们的生活发生了日新月异的变化&#xff0c;特别是计算机的应用及普及到经济和社会生活的各个领域。在消费领域&#xff0c;网上购物已经成为大众所接受的一种新型的消费方式…...

2023thupc总结

A 大富翁 很有意思的题 ∑x∈A∑y∈B[x支配y]−∑x∈A∑y∈B[y支配x]−∑x∈Awx\sum_{x\in A}\sum_{y\in B}[x支配y]-\sum_{x\in A}\sum_{y\in B}[y支配x]-\sum_{x\in A}w_x∑x∈A​∑y∈B​[x支配y]−∑x∈A​∑y∈B​[y支配x]−∑x∈A​wx​ ∑x∈A∑y[x支配y]−∑x∈A∑y[y支…...

【数据库】MySQL数据库基础

目录 1.数据库&#xff1a; 2.数据库基本操作 2.1 MySQL的运行原理 2.2显示数据库&#xff1a; 2.3创建数据库 2.4使用数据库 2.5删除数据库 3.常见的数据类型 3.1数值类型&#xff1a; 3.2字符型类型 3.3日期类型 4.表的操作 4.1创建表 4.2查看表 4.3删除表 5.汇总…...

grid了解

结构 <div class"grid"><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div><div>7</div><div>8</div><div>9</div>&l…...

2023年全国最新工会考试精选真题及答案13

百分百题库提供工会考试试题、工会考试预测题、工会考试真题、工会证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 81.女职工委员会在&#xff08;&#xff09;下开展工作。 A.企业工会委员会领导 B.企业工会委员会指导 …...

初识HTML技术

文章目录一、为什么学习前端?二、第一个HTML文件VSCode三. HTML元素四. HTML页面一、为什么学习前端? 我们作为一个后端程序员&#xff0c;为什么还要学习前端&#xff0c;因为我们的终极目的是实现web开发&#xff0c;搭建网站&#xff0c;网站 前端 后端 比如我们随便…...

我们为什么要用消息队列?

消息队列是系统设计中存在时间最长的中间件之一&#xff0c;从系统有通信需求开始&#xff0c;就产生了消息队列。 消息队列的使用场景 在日常系统设计与实现的过程中&#xff0c;下面3种场景会涉及到消息队列&#xff1a; 异步处理流量控制服务解耦 异步处理 典型的应用场…...

Linux进程控制

进程控制fork函数进程终止退出码常见的退出方式进程等待什么是进程等待&#xff0c;为什么要进程等待阻塞与非阻塞进程替换替换原理替换函数执行系统命令执行自己写的程序模拟实现简易的shellfork函数 fork函数是创建一个子进程&#xff0c;之前用过。 #include <unistd.h…...

sing-box性能调优:从内存占用到吞吐量的全面优化

sing-box性能调优&#xff1a;从内存占用到吞吐量的全面优化 引言 sing-box作为通用代理平台&#xff08;The universal proxy platform&#xff09;&#xff0c;在高并发网络环境下的性能表现直接影响用户体验。本文将从内存管理、连接复用、吞吐量优化三个维度&#xff0c;…...

终极指南:yaml-cpp多版本共存方案与命名空间隔离

终极指南&#xff1a;yaml-cpp多版本共存方案与命名空间隔离 【免费下载链接】yaml-cpp A YAML parser and emitter in C 项目地址: https://gitcode.com/gh_mirrors/ya/yaml-cpp 在C项目中处理YAML配置文件时&#xff0c;yaml-cpp 是一个功能强大的解析器和发射器库。然…...

Wan2.2-I2V-A14B一键部署教程:Python环境快速配置与模型调用

Wan2.2-I2V-A14B一键部署教程&#xff1a;Python环境快速配置与模型调用 1. 快速开始&#xff1a;部署前的准备工作 在开始之前&#xff0c;确保你已经拥有星图GPU平台的账号并完成登录。这个平台提供了强大的计算资源&#xff0c;特别适合运行图像到视频转换这类计算密集型任…...

FireRedASR Pro长音频处理优化方案:基于LSTM的流式识别

FireRedASR Pro长音频处理优化方案&#xff1a;基于LSTM的流式识别 你有没有遇到过这样的场景&#xff1f;一场长达两小时的会议录音&#xff0c;或者一堂干货满满的讲座&#xff0c;想要把它转成文字&#xff0c;结果发现要么是软件直接卡死&#xff0c;要么就是识别出来的文…...

别再手动算面积了!用ArcGIS 10.6的‘汇总统计’功能,5分钟搞定土地利用数据分析

5分钟掌握ArcGIS 10.6汇总统计&#xff1a;土地利用分析效率提升实战 在城乡规划、生态保护等领域的日常工作中&#xff0c;我们经常需要处理各类空间数据。以某市自然资源局为例&#xff0c;工作人员每月需要统计各行政区不同土地利用类型的面积分布情况。传统做法是将属性表导…...

Pixel Dream Workshop 面试宝典:常见Java面试题在AI项目中的实践

Pixel Dream Workshop 面试宝典&#xff1a;常见Java面试题在AI项目中的实践 1. 引言&#xff1a;当Java面试题遇上AI项目 最近在面试Java工程师时发现一个有趣现象&#xff1a;很多候选人能背出各种面试题的标准答案&#xff0c;但一旦问到"这个技术点在实际项目中怎么…...

Anaconda环境下的LiuJuan20260223Zimage开发:创建独立Python沙箱

Anaconda环境下的LiuJuan20260223Zimage开发&#xff1a;创建独立Python沙箱 你是不是也遇到过这种情况&#xff1f;电脑上同时跑着好几个Python项目&#xff0c;一个需要TensorFlow 2.0&#xff0c;另一个却只能用TensorFlow 1.x&#xff0c;装来装去最后环境一团糟&#xff…...

OWL ADVENTURE场景实战:打造你的个人创意图片分析助手

OWL ADVENTURE场景实战&#xff1a;打造你的个人创意图片分析助手 你是否经常遇到这样的情况&#xff1a;看到一张有趣的图片&#xff0c;想知道它背后的故事&#xff1f;或者作为设计师&#xff0c;需要快速分析竞品的视觉风格&#xff1f;又或者只是想找个能"看懂"…...

Asian Beauty Z-Image Turbo 学术研究工具链:从MATLAB数据分析到AI图像生成

Asian Beauty Z-Image Turbo 学术研究工具链&#xff1a;从MATLAB数据分析到AI图像生成 1. 引言 如果你做过科研&#xff0c;或者写过技术论文&#xff0c;一定有过这样的经历&#xff1a;辛辛苦苦用MATLAB跑完仿真、画好数据图&#xff0c;到了要写论文插图说明或者画一个漂…...

宝塔面板PHP8.0如何快速安装Redis缓存扩展_在PHP设置的安装扩展模块中一键配置

宝塔面板PHP 8.0下无法一键安装Redis扩展&#xff0c;因官方源无适配预编译包且构建脚本不兼容ZTS/NTS、phpize路径及头文件要求&#xff1b;须用pecl手动编译redis-5.3.7并正确配置php.ini。宝塔面板 PHP 8.0 下无法通过「安装扩展」一键启用 Redis&#xff0c;是因为官方源里…...