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

Unity|小游戏复刻|见缝插针1(C#)

准备

![[Pasted image 20250123001920.png]]

  1. 创建Scenes场景,Scripts脚本,Prefabs预制体文件夹
修改背景颜色
  1. 选中Main Camera
    ![[Pasted image 20250123002236.png]]

  2. 找到背景
    ![[Pasted image 20250123002319.png]]

  3. 选择颜色,一种白中透黄的颜色
    ![[Pasted image 20250123002353.png]]

创建小球
  1. 将文件夹里的Circle拖入层级里
    ![[Pasted image 20250123002543.png]]

  2. 选中Circle,位置为左右居中,偏上,颜色为黑色,大小缩为0.7
    ![[Pasted image 20250123002729.png]]

![[Pasted image 20250123002928.png]]

分数
  1. 创建Text
    ![[Pasted image 20250123003014.png]]

  2. 删除掉EventSystem,因为本例中UI不需要做任何事件
    ![[Pasted image 20250123003233.png]]

  3. 选中Text,点击重置,文本居中,颜色为白色,内容为0
    ![[Pasted image 20250123003330.png]]

![[Pasted image 20250123003522.png]]

  1. 选中Canvas,将渲染模式改为世界空间,接着修改大小,改为100.100
    ![[Pasted image 20250123003619.png]]

![[Pasted image 20250123003850.png]]

  1. 将缩放改为0.01,拖动到小球上
    ![[Pasted image 20250123004104.png]]

  2. 使得Circle和Canvas的位置坐标一致,都为0,2,0
    ![[Pasted image 20250123004307.png]]

  3. 选择MainCamera设置为Canvas的事件摄像机
    ![[Pasted image 20250123004752.png]]

小球运动
  1. 创建一个脚本,选择MonoBehaviour,命名为RotateSelf
    ![[Pasted image 20250123005342.png]]

  2. 将此脚本挂载到Circle的下面
    ![[Pasted image 20250123011624.png]]

  3. 编写脚本

using JetBrains.Annotations;
using UnityEngine;

public class NewMonoBehaviourScript : MonoBehaviour
{
    public float speed = 90;

    // Start is called once before the first execution of Update after the MonoBehaviour is created
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
        transform.Rotate(new Vector3(0, 0, speed * Time.deltaTime));
    }
}

  1. 在场景中点击播放,可以看到Circle在逆时针旋转,如果想要顺时针旋转,在speed前加一个负号
    ![[Pasted image 20250123011609.png]]
针头
  1. 将针导入到层级里,将Pin的大小适当放大
    ![[Pasted image 20250123012934.png]]

![[Pasted image 20250123012940.png]]

  1. 制作针的尾部,复制一个Circle
    ![[Pasted image 20250123013315.png]]

  2. 调整大小位置颜色
    ![[Pasted image 20250123013335.png]]

![[Pasted image 20250123013353.png]]

  1. 将Pin拖入Prefabs文件夹里,方便进行实例化创建
    ![[Pasted image 20250123013620.png]]

  2. 给针头添加碰撞器,选中针头,在检查器底下的添加组件,搜Circle Collider 2D添加
    ![[Pasted image 20250123013708.png]]

![[Pasted image 20250123013750.png]]

生成针
  1. 创建两个空对象,将第一个命名为StartPosition
    ![[Pasted image 20250123014250.png]]

  2. 将Pin放到StartPosition的下面,这样可以进行预览,调整位置
    ![[Pasted image 20250123014347.png]]

![[Pasted image 20250123014223.png]]

  1. 将StartPosition复制,拖到屏幕外面进行实例化
    ![[Pasted image 20250123014450.png]]

![[Pasted image 20250123014530.png]]

  1. 然后删去针,改名为SpawnPositon
    ![[Pasted image 20250123014640.png]]

  2. 创建一个空对象,命名为GameManager
    ![[Pasted image 20250123014806.png]]

  3. 创建一个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 created
    void Start()
    {
        startPosition = GameObject.Find("StartPosition").transform;
        spawnPosition = GameObject.Find("SpawnPosition").transform;
        SpawnPin();
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    void SpawnPin()
    {
        GameObject.Instantiate(pinPrefab, spawnPosition.position, pinPrefab.transform.rotation);
    }
}

  1. 将PIn实例拖到右边的Pin Prefab里
    ![[Pasted image 20250123015728.png]]

  2. 点击运行后屏幕外生成了针
    ![[Pasted image 20250123020249.png]]


http://www.kler.cn/a/515991.html

相关文章:

  • C语言教程——文件处理(1)
  • leetcode 2920. 收集所有金币可获得的最大积分
  • 优选算法——哈希表
  • 运算放大器应用电路设计笔记(六)
  • 【前端】CSS实战之音乐播放器
  • 大华前端开发面试题及参考答案 (下)
  • mybatis(57/134)
  • Python 轻松扫描,快速检测:高效IP网段扫描工具全解析
  • Web 音视频(二)在浏览器中解析视频
  • Lisp语言的区块链
  • H266/VVC 量化编码中 TCQ(或 DQ)技术
  • oppo25届秋招补录内推来啦
  • 算法中的时间复杂度和空间复杂度
  • Jetson Xavier NX (ARM) 使用 PyTorch 安装 Open3D-ML 指南
  • GESP202309 三级【进制判断】题解(AC)
  • 【易康eCognition实验教程】003:点云数据加载浏览与操作详解
  • 探索WPF中的RelativeSource:灵活的资源绑定利器
  • Linux——文件与内存
  • 【c语言日寄】Vs调试——新手向
  • 大模型 / 智能体在智能运维领域的应用总结与发展趋势概述
  • win32汇编环境,按字节、双字等复制字符的操作
  • uniapp+Vue3(<script setup lang=“ts“>)模拟12306城市左右切换动画效果
  • ssm基于SSM的毕业论文开题评审管理系统
  • 【力扣:新动计划,编程入门 —— 题解 ②】
  • 为什么Foreach循环中为什么不能使用 remove/add操作?
  • 网络(三) 协议