Unity|小游戏复刻|见缝插针1(C#)
准备
![![[Pasted image 20250123001920.png]]](https://i-blog.csdnimg.cn/direct/57232b58fe6240ca80f3b4556357324d.png)
- 创建Scenes场景,Scripts脚本,Prefabs预制体文件夹
修改背景颜色
-
选中Main Camera
![![[Pasted image 20250123002236.png]]](https://i-blog.csdnimg.cn/direct/c8969910c61d4b0eb66af164720aedd1.png)
-
找到背景
![![[Pasted image 20250123002319.png]]](https://i-blog.csdnimg.cn/direct/b1973996ba1e45898297dc546f2366a5.png)
-
选择颜色,一种白中透黄的颜色
![![[Pasted image 20250123002353.png]]](https://i-blog.csdnimg.cn/direct/6dccb7f3428c4e2186c521341fc2e1e4.png)
创建小球
-
将文件夹里的Circle拖入层级里
![![[Pasted image 20250123002543.png]]](https://i-blog.csdnimg.cn/direct/9a0a16cad5a648d79b1845ef923b5ed9.png)
-
选中Circle,位置为左右居中,偏上,颜色为黑色,大小缩为0.7
![![[Pasted image 20250123002729.png]]](https://i-blog.csdnimg.cn/direct/d53a6814bef5425a9cce34fe6251bcc6.png)
![![[Pasted image 20250123002928.png]]](https://i-blog.csdnimg.cn/direct/39e2a8f74846426ca14d3878f456cfbb.png)
分数
-
创建Text
![![[Pasted image 20250123003014.png]]](https://i-blog.csdnimg.cn/direct/1a440de6703743d2979b515d968f16b6.png)
-
删除掉EventSystem,因为本例中UI不需要做任何事件
![![[Pasted image 20250123003233.png]]](https://i-blog.csdnimg.cn/direct/f21c6f946bd742d2923ca0cf4ab34c5e.png)
-
选中Text,点击重置,文本居中,颜色为白色,内容为0
![![[Pasted image 20250123003330.png]]](https://i-blog.csdnimg.cn/direct/e0fd79a852e74742adee85b4f3d3729c.png)
![![[Pasted image 20250123003522.png]]](https://i-blog.csdnimg.cn/direct/31d9173af67947d892caccf362f0e771.png)
- 选中Canvas,将渲染模式改为世界空间,接着修改大小,改为100.100
![![[Pasted image 20250123003619.png]]](https://i-blog.csdnimg.cn/direct/0926f1a0ae1b4521b5c53dc033894d80.png)
![![[Pasted image 20250123003850.png]]](https://i-blog.csdnimg.cn/direct/29c4b14f669e4e49a161d0d87cdab45b.png)
-
将缩放改为0.01,拖动到小球上
![![[Pasted image 20250123004104.png]]](https://i-blog.csdnimg.cn/direct/8b3b987c4382472095b414be9bb22ee9.png)
-
使得Circle和Canvas的位置坐标一致,都为0,2,0
![![[Pasted image 20250123004307.png]]](https://i-blog.csdnimg.cn/direct/a5f13f8bea5d4197adb816255bc2c48c.png)
-
选择MainCamera设置为Canvas的事件摄像机
![![[Pasted image 20250123004752.png]]](https://i-blog.csdnimg.cn/direct/05d64451d7a14036b26ddbb830825757.png)
小球运动
-
创建一个脚本,选择MonoBehaviour,命名为RotateSelf
![![[Pasted image 20250123005342.png]]](https://i-blog.csdnimg.cn/direct/dac6eecaa0ad4f64b100d093e0457b4d.png)
-
将此脚本挂载到Circle的下面
![![[Pasted image 20250123011624.png]]](https://i-blog.csdnimg.cn/direct/4f97d4c6e8e245d986c69aa9090756d1.png)
-
编写脚本
using JetBrains.Annotations;
using UnityEngine;public class RotateSelf : MonoBehaviour
{public float speed = 90;// Start is called once before the first execution of Update after the MonoBehaviour is createdvoid Start(){}// Update is called once per framevoid Update(){transform.Rotate(new Vector3(0, 0, speed * Time.deltaTime));}
}
- 在场景中点击播放,可以看到Circle在逆时针旋转,如果想要顺时针旋转,在speed前加一个负号
![![[Pasted image 20250123011609.png]]](https://i-blog.csdnimg.cn/direct/31f9d822766f427b8348cbb283d3573b.png)
针头
- 将针导入到层级里,将Pin的大小适当放大
![![[Pasted image 20250123012934.png]]](https://i-blog.csdnimg.cn/direct/a6d4a82750cf4cb7b740d98d550560ca.png)
![![[Pasted image 20250123012940.png]]](https://i-blog.csdnimg.cn/direct/0e226c22769b4fcb9458304fc1ef1b5c.png)
-
制作针的尾部,复制一个Circle
![![[Pasted image 20250123013315.png]]](https://i-blog.csdnimg.cn/direct/e1457ee0b9024343bb198294997e4359.png)
-
调整大小位置颜色
![![[Pasted image 20250123013335.png]]](https://i-blog.csdnimg.cn/direct/0d32774c06ef4cd28f03e165f3cb0147.png)
![![[Pasted image 20250123013353.png]]](https://i-blog.csdnimg.cn/direct/34e584e6f0174955a9ca77fb617dd4b2.png)
-
将Pin拖入Prefabs文件夹里,方便进行实例化创建
![![[Pasted image 20250123013620.png]]](https://i-blog.csdnimg.cn/direct/414f86fdb2be489d8481b4217fd17d17.png)
-
给针头添加碰撞器,选中针头,在检查器底下的添加组件,搜Circle Collider 2D添加
![![[Pasted image 20250123013708.png]]](https://i-blog.csdnimg.cn/direct/665993ec6afe4869a450cebf83f717c8.png)
![![[Pasted image 20250123013750.png]]](https://i-blog.csdnimg.cn/direct/cc674303217a40d8bd77f31ff1b1d353.png)
生成针
-
创建两个空对象,将第一个命名为StartPosition
![![[Pasted image 20250123014250.png]]](https://i-blog.csdnimg.cn/direct/067d0d0977a5402396a45cf81a33f0ce.png)
-
将Pin放到StartPosition的下面,这样可以进行预览,调整位置
![![[Pasted image 20250123014347.png]]](https://i-blog.csdnimg.cn/direct/081fceac1eb64435a8d67af8fb27ad13.png)
![![[Pasted image 20250123014223.png]]](https://i-blog.csdnimg.cn/direct/7ff2983ba3db48e4a1bed17ff8de6136.png)
- 将StartPosition复制,拖到屏幕外面进行实例化
![![[Pasted image 20250123014450.png]]](https://i-blog.csdnimg.cn/direct/640bd898f2ad42da947778befe9c8b13.png)
![![[Pasted image 20250123014530.png]]](https://i-blog.csdnimg.cn/direct/6d0b8a6cb0a2473ea4dd26334dc5478f.png)
-
然后删去针,改名为SpawnPositon
![![[Pasted image 20250123014640.png]]](https://i-blog.csdnimg.cn/direct/10c091b36799403199fdcdad4a22faec.png)
-
创建一个空对象,命名为GameManager
![![[Pasted image 20250123014806.png]]](https://i-blog.csdnimg.cn/direct/c16739a08b724fadb5fff763fd7c4073.png)
-
创建一个GameManager脚本,挂载到对象下面
using UnityEngine;public class GameManager : MonoBehaviour
{private Transform startPosition;private Transform spawnPosition;public GameObject pinPrefab;// Start is called once before the first execution of Update after the MonoBehaviour is createdvoid Start(){startPosition = GameObject.Find("StartPosition").transform;spawnPosition = GameObject.Find("SpawnPosition").transform;SpawnPin();}// Update is called once per framevoid Update(){}void SpawnPin(){GameObject.Instantiate(pinPrefab, spawnPosition.position, pinPrefab.transform.rotation);}
}
-
将PIn实例拖到右边的Pin Prefab里
![![[Pasted image 20250123015728.png]]](https://i-blog.csdnimg.cn/direct/5330927ac60c43a58d7f5d7ceb3c2750.png)
-
点击运行后屏幕外生成了针
![![[Pasted image 20250123020249.png]]](https://i-blog.csdnimg.cn/direct/1a14a5563df4491aa0d40d52f058286d.png)
相关文章:
Unity|小游戏复刻|见缝插针1(C#)
准备 创建Scenes场景,Scripts脚本,Prefabs预制体文件夹 修改背景颜色 选中Main Camera 找到背景 选择颜色,一种白中透黄的颜色 创建小球 将文件夹里的Circle拖入层级里 选中Circle,位置为左右居中,偏上&…...
No.1|Godot|俄罗斯方块复刻|棋盘和初始方块的设置
删掉基础图标新建assets、scenes、scripts文件夹 俄罗斯方块的每种方块都是由四个小方块组成的,很适合放在网格地图中 比如网格地图是宽10列,高20行 要实现网格的对齐和下落 Node2D节点 新建一个Node2D 添加2个TileMapLayer 一个命名为Board&…...
SSM框架探秘:Spring 整合 SpringMVC 框架
搭建和测试 SpringMVC 的开发环境: web.xml 元素顺序: 在 web.xml 中配置 DisPatcherServlet 前端控制器: <!-- 配置前端控制器 --> <servlet><servlet-name>dispatcherServlet</servlet-name><servlet-class>…...
2025.1.20——二、buuctf BUU UPLOAD COURSE 1 1 文件上传
题目来源:buuctf BUU UPLOAD COURSE 1 1 目录 一、打开靶机,查看信息 二、解题思路 step 1:上传一句话木马.php文件康康回显 step 2:蚁剑连接 三、小结 一、打开靶机,查看信息 这里提示到了文件会被上传到./uplo…...
【架构面试】三、高可用高性能架构设计
高可用高性能架构设计 面试要点引入:架构原理、分布式技术等是面试必考领域,高可用高性能需求考察频繁。面试常通过询问系统架构设计来考察能力,讲解架构设计过程就是证明系统高可用的过程,其中涉及SLA指标。SLA指标详解 定义与衡…...
11.渲染管线——光栅化阶段
光栅化阶段是渲染管线中的一个关键步骤,负责将3D模型转换成屏幕上的2D像素。用通俗易懂的方式来解释: 通俗解释:光栅化就像把3D模型“投影”到2D屏幕上 想象你是一个画家,正在把3D场景画到2D画布上: 3D模型到2D屏幕的…...
【数据分享】1929-2024年全球站点的逐月平均能见度(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标!说到气象数据,最详细的气象数据是具体到气象监测站点的数据! 有关气象指标的监测站点数据,之前我们分享过1929-2024年全球气象站点…...
二叉树的深度
二叉树深度的定义: 二叉树的深度(高度)是指从根节点到最远叶子节点的最长路径上的节点数。例如,一个只有根节点的二叉树,其深度为1;如果根节点有两个子节点,且每个子节点又分别有两个子节点&…...
MySQL命令及用法(精华版)
目录 DDL(数据定义语言) 数据库操作 表操作 DML(数据操作语言) DQL(数据查询语言) 基本查询 条件查询 聚合函数 分组查询 排序查询 分页查询 DCL(数据控制语言) 用户…...
R语言学习笔记之高效数据操作
一、概要 数据操作是R语言的一大优势,用户可以利用基本包或者拓展包在R语言中进行复杂的数据操作,包括排序、更新、分组汇总等。R数据操作包:data.table和tidyfst两个扩展包。 data.table是当前R中处理数据最快的工具,可以实现快…...
将 OneLake 数据索引到 Elasticsearch - 第二部分
作者:来自 Elastic Gustavo Llermaly 及 Jeffrey Rengifo 本文分为两部分,第二部分介绍如何使用自定义连接器将 OneLake 数据索引并搜索到 Elastic 中。 在本文中,我们将利用第 1 部分中学到的知识来创建 OneLake 自定义 Elasticsearch 连接器…...
Linux——冯 • 诺依曼体系结构
目录 一、冯•诺依曼体系结构原理二、内存提高冯•诺依曼体系结构效率的方法三、当用QQ和朋友聊天时数据的流动过程四、关于冯诺依曼五、总结 我们常见的计算机,如笔记本。我们不常见的计算机,如服务器,大部分都遵守冯诺依曼体系 流程&#…...
Java进阶(一)
目录 一.Java注解 什么是注解? 内置注解 元注解 二.对象克隆 什么是对象克隆? 为什么用到对象克隆 三.浅克隆深克隆 一.Java注解 什么是注解? java中注解(Annotation)又称java标注,是一种特殊的注释。 可以添加在包,类&…...
appium自动化环境搭建
一、appium介绍 appium介绍 appium是一个开源工具、支持跨平台、用于自动化ios、安卓手机和windows桌面平台上面的原生、移动web和混合应用,支持多种编程语言(python,java,Ruby,Javascript、PHP等) 原生应用和混合应用…...
Qt 5.14.2 学习记录 —— 이십 QFile和多线程
文章目录 1、QFile1、打开2、读写3、关闭4、程序5、其它功能 2、多线程1、演示2、锁 3、条件变量和信号量 1、QFile Qt有自己的一套文件体系,不过Qt也可以使用C,C,Linux的文件操作。使用Qt的文件体系和Qt自己的一些类型更好配合。 管理写入读…...
積分方程與簡單的泛函分析7.希爾伯特-施密特定理
1)def函數叫作"由核生成的(有源的)" 定义: 设 是定义在区域上的核函数。 对于函数,若存在函数使得, 则称函数是“由核生成的(有源的)”。 这里的直观理解是: 函数的“来源”可以通过核函数 与另一个函数的积分运算得到。 在积分方程理论中,这种表述常…...
使用vitepress搭建自己的博客项目
一、介绍can-vitepress-blog 什么是CAN BLOG CAN BLOG是基于vitepress二开的个人博客系统,他能够方便使用者快速构建自己的博客文章,无需繁琐的配置和复杂的代码编写。 CAN BLOG以antdv为UI设计基础,简洁大方,界面友好…...
开始步入达梦中级dba
分析内存使用需要的方法之一 disql /nolog conn sysdba/sysdbaselect value from v$parameter where nameMEMORY_LEAK_CHECK; SP_SET_PARA_VALUE(0,MEMORY_LEAK_CHECK,1); select * from V$MEM_REGINFO; select * from V$MEM_HEAP;...
如何在docker中的mysql容器内执行命令与执行SQL文件
通过 docker ps -a 查询当前运行的容器,找到想执行命令的容器名称。 docker ps -a若想执行sql文件,则将sql文件放入当前文件夹下后将项目内的 SQL 文件拷贝到 mysql 容器内部的 root下。 sudo docker cp /root/enterprise.sql mysql:/root/然后进入 my…...
S4 HANA更改Tax base Amount的字段控制
本文主要介绍在S4 HANA OP中Tax base Amount的字段控制相关设置。具体请参照如下内容: 1. 更改Tax base Amount的字段控制 以上配置用于控制FB60/FB65/FB70/FB75/MIRO的页签“Tax”界面是否可以修改“Tax base Amount”, 如果勾选Change 表示可以修改T…...
多模态扩展实验:OpenClaw+Qwen3-32B处理图片描述生成
多模态扩展实验:OpenClawQwen3-32B处理图片描述生成 1. 实验背景与动机 最近在探索如何将OpenClaw的自动化能力扩展到视觉领域。作为一个长期依赖文本交互的框架,OpenClaw能否结合多模态大模型处理图像任务?这引发了我的兴趣。恰好手头有台…...
在构建高并发、海量数据的分布式系统时,数据存储与治理是核心挑战。单机数据库的性能瓶颈、ID 冲突、历史数据膨胀等问题,都需要通过架构层面的设计来解决
在构建高并发、海量数据的分布式系统时,数据存储与治理是核心挑战。单机数据库的性能瓶颈、ID 冲突、历史数据膨胀等问题,都需要通过架构层面的设计来解决。 以下结合具体业务场景,深度解析分布式 ID、分库分表、数据迁移与冷热分离的内部机制…...
保姆级教程:用命令行实时监控瑞芯微RK3588的CPU/GPU/NPU负载与温度
嵌入式开发实战:构建RK3588芯片全维度性能监控系统 在边缘计算和AI推理场景中,RK3588作为一款高性能SoC,其复杂的多核架构(包括6核CPU、Mali-G610 GPU和6TOPS NPU)对系统监控提出了更高要求。本文将手把手教你搭建一个…...
国产操作系统安全实战:用银河麒麟KYSEC防护关键文件的5种典型场景
国产操作系统安全实战:银河麒麟KYSEC防护关键文件的5种典型场景 在数字化转型浪潮中,企业核心数据资产的安全防护已成为技术团队的头等大事。想象一下:财务系统的敏感账目被误删、研发代码遭恶意篡改、数据库凭证意外泄露...这些场景轻则造成…...
ChatGLM3-6B新手必看:断网可用的本地智能对话解决方案
ChatGLM3-6B新手必看:断网可用的本地智能对话解决方案 1. 引言:为什么你需要一个本地AI助手? 想象一下,你正在处理一份敏感的客户合同,需要AI帮你分析条款;或者你在一个没有稳定网络的环境里,…...
如何打造个人游戏云:5步掌握Sunshine跨平台串流技术
如何打造个人游戏云:5步掌握Sunshine跨平台串流技术 【免费下载链接】Sunshine Sunshine: Sunshine是一个自托管的游戏流媒体服务器,支持通过Moonlight在各种设备上进行低延迟的游戏串流。 项目地址: https://gitcode.com/GitHub_Trending/su/Sunshine…...
OpenClaw大模型API怎么选?Kimi与DeepSeek实测指南
最适配 OpenClaw 的大模型 API 是哪个?四款模型实测对比与选型指南(2026年3月) OpenClaw 内置 ReAct Agent 架构,通过工具调用(Tool Use)驱动 Shell 执行、文件操作、浏览器控制、截图等自动化任务。模型的…...
利用通义千问模型辅助C语言学习:从基础语法到指针难题解析
利用通义千问模型辅助C语言学习:从基础语法到指针难题解析 学C语言,是不是经常卡在某个概念上,比如那个让人又爱又恨的“指针”?或者写了一段代码,运行结果和预想的完全不一样,却死活找不到原因࿱…...
Windows下FFmpeg环境配置全攻略:从下载到视频剪辑实战
Windows下FFmpeg环境配置全攻略:从下载到视频剪辑实战 在数字内容创作爆发的时代,视频处理能力已成为开发者和创作者的必备技能。FFmpeg作为开源多媒体处理领域的"瑞士军刀",其强大功能与跨平台特性使其成为处理音视频文件的首选工…...
别再只用Canvas了!用Vue3组合式API优雅封装fabric.js的画笔与橡皮擦(附完整Hook代码)
重构Canvas交互:用Vue3组合式API封装fabric.js的工程化实践 在Web图形编辑领域,fabric.js以其强大的对象模型和交互能力成为许多开发者的首选。但当我们将它集成到Vue3项目中时,常常会遇到状态管理混乱、代码耦合度高的问题。本文将展示如何用…...
