Unity百游修炼(20)——见缝插针详细全流程(含完整项目及源代码)

Unity 游戏实例开发集合 之 FlyPin (见缝插针) 休闲小游戏快速实现 Unity 游戏实例开发集合 之 FlyPin (见缝插针) 休闲小游戏快速实现 目录 Unity 游戏实例开发集合 之 FlyPin (见缝插针) 休闲小游戏快速实现 一、简单介绍 二、FlyPin (见缝插针)游戏内容与操作 三、游戏代码框架 四、知识点 五、游戏效果预览 六、实现步骤 七、工程源码地址 八、延伸扩展 一、简单介绍 Unity 游戏实例开发集合,使用简单易懂的方式,讲解常见游戏的开发实现过程,方便后期类似游戏开发的借鉴和复用。 本节介绍,FlyPin . 阅读详情

一.玩法

        在这款 “见缝插针” 游戏中,玩家通过点击鼠标发射针。屏幕上有一个不断旋转的圆形目标,玩家需要在恰当的时机发射针,使针能够准确地插入圆形目标中。每成功插入一根针,分数加一。一旦发射的针与已存在的针发生碰撞,游戏即宣告结束。游戏旨在考验玩家的反应速度与时机判断能力。


二.最终效果

见缝插针


三.素材(含完整项目及源代码)

http://通过网盘分享的文件:jianfengchazhen.zip等2个文件 链接: https://pan.baidu.com/s/1QD0CHNjDmqI3uevoLHG3cg?pwd=1209 提取码: 1209  --来自百度网盘超级会员v5的分享


四.详细制作步骤

1.制作纯色场景

        (1)选中Main camera,然后按照图片中标注参数进行修改

2. 拖入素材圆形  编辑旋转脚本

       (1) 拖入素材,并且修改命名(我修改为target)

        (2)创建脚本文件夹,在文件夹内创建旋转脚本

        (3)编辑脚本内容

  Transform组件记录着游戏对象的位置、旋转和缩放信息 ,脚本中先通过Target_transform = this.transform;获取当前挂载脚本游戏对象的Transform。

  Rotate方法用于改变Transform的旋转属性,它接收三个参数,分别对应绕 X、Y、Z 轴旋转的角度。这里前两个参数设为 0 ,即不绕 X、Y 轴旋转;Speed代表旋转速度(度 / 秒),                        Time.deltaTime是上一帧到当前帧的时间间隔,二者相乘,能保证在不同帧率下,游戏对象都以相对稳定的速度绕 Z 轴旋转,实现了持续且稳定的旋转效果。

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

public class RotateTarget : MonoBehaviour
{
    private Transform Target_transform;
    public float Speed=90;
    // Start is called before the first frame update
    void Start()
    {
        Target_transform = this.transform;
    }

    // Update is called once per frame
    void Update()
    {
        Target_transform.Rotate(0, 0, Speed * Time.deltaTime);
    }
}

 3.制作针Pin的预制体

(1)拖入pin素材作为针身体,circle作为针头(pinhead),修改名称

(2) 进行变形和基础变换,形成预制体 针 pinpre,放入文件夹中保存

4.在特定位置实例化针Pinpre

(1)创建一个空物体命名为GameManger管理游戏功能,创建两个空物体分别名为StartPoint和PrePoint作为针 的待机位置和实例化位置

(2)创建GameManger脚本

(3)添加实例化代码

using UnityEngine;

// 这个类用于管理游戏中的实例化操作
public class PinInstantiator : MonoBehaviour
{
    // 存储 PrePin 游戏对象的引用,需要在 Inspector 面板中赋值
    public GameObject PrePin;
    // 存储 PrePoint 的 Transform 组件引用,用于确定实例化位置
    public Transform prepoint;
    // 存储当前实例化的 Pin 对象
    private Pin currentPin;

    // Start 方法在脚本实例被启用时调用,这里可以进行一些初始化操作
    void Start()
    {
        // 检查 PrePin 和 prepoint 是否都已正确赋值
        if (prepoint != null && PrePin != null)
        {
            // 调用 ProducePin 方法进行实例化操作
            ProducePin();
        }
        else
        {
            // 如果 PrePin 或 prepoint 未正确赋值,输出错误信息
            Debug.LogError("PrePin 或 prepoint 未正确赋值,无法进行实例化操作。");
        }
    }

    // 该方法用于实例化 Pin 对象
    public Pin ProducePin()
    {
        // 使用 Instantiate 方法实例化 PrePin 游戏对象
        // 第一个参数是要实例化的游戏对象,即 PrePin
        // 第二个参数是实例化对象的位置,这里使用 prepoint 的位置
        // 第三个参数是实例化对象的旋转,这里使用 PrePin 的旋转
        GameObject instantiatedObject = Instantiate(PrePin, prepoint.position, PrePin.transform.rotation);

        // 从实例化的游戏对象中获取 Pin 组件
        currentPin = instantiatedObject.GetComponent<Pin>();

        // 检查是否成功获取到 Pin 组件
        if (currentPin == null)
        {
            // 如果未获取到 Pin 组件,输出错误信息
            Debug.LogError("实例化的对象上未找到 Pin 组件。");
        }

        // 返回当前实例化的 Pin 对象
        return currentPin;
    }
}

5.让创建的针Pinpre移动到合适位置

(1)创建Pin脚本

(2)撰写代码

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

// Pin 类,用于控制针的行为
public class Pin : MonoBehaviour
{
    // 表示针是否处于飞行状态,初始为 false,即未飞行
    private bool isFly = false;
    // 表示针是否已到达起点,初始为 false,即未到达
    private bool isReach = false;
    // 存储起点的 Transform 组件,用于获取起点位置
    private Transform startpoint;
    // 控制针移动的速度,单位可以理解为单位时间内移动的距离
    public float Speed = 50;
    // 存储目标圆(这里假设是一个名为 "target" 的游戏对象)的 Transform 组件,用于获取目标位置
    private Transform circle;

    // Start 方法在脚本实例化后的第一帧更新之前调用
    void Start()
    {
        // 通过名称查找名为 "StartPoint" 的游戏对象,并获取其 Transform 组件赋值给 startpoint
        startpoint = GameObject.Find("StartPoint").transform;
        // 通过名称查找名为 "target" 的游戏对象,并获取其 Transform 组件赋值给 circle
        circle = GameObject.Find("target").transform;
    }

    // Update 方法在每帧都会被调用,用于更新针的状态和位置
    void Update()
    {
        // 如果针当前未处于飞行状态
        if (isFly == false)
        {
            // 如果针还未到达起点
            if (isReach == false)
            {
                // 打印一个警告信息,这里主要用于调试观察,可根据需要移除
                Debug.LogWarning("yunxing");
                // 使用 Vector3.MoveTowards 方法使针朝着起点位置移动
                // 该方法会返回一个新的位置,使对象朝着目标位置以指定速度移动
                transform.position = Vector3.MoveTowards(transform.position, startpoint.position, Speed * Time.deltaTime);
                // 检查针与起点的距离,如果距离小于 0.05f,认为针已到达起点
                if (Vector3.Distance(transform.position, startpoint.position) < 0.05f)
                {
                    // 将 isReach 设为 true,表示针已到达起点
                    isReach = true;
                }
            }
        }
        else
        {
            // 如果针处于飞行状态,使针朝着目标圆(circle)的位置移动
            transform.position = Vector3.MoveTowards(transform.position, circle.position, Speed * Time.deltaTime);
            // 检查针与目标圆的距离,如果距离小于 1.55f
            if (Vector3.Distance(transform.position, circle.position) < 1.55f)
            {
                // 以下原本的代码是想设置一个偏移量让针在距离圆心一定位置处停下,但被注释掉了
                //Vector3 offset = circle.position;
                //offset.y -= 1.55f ;//让针在距离圆心一定位置处停下
                //transform.position = offset;
                // 将针设置为目标圆(circle)的子对象,使其附着在目标圆上
                transform.parent = circle;
                // 将 isFly 设为 false,表示针已停止飞行
                isFly = false;
            }
        }
    }

    // 该方法用于启动针的飞行,通常在外部调用,比如用户点击操作等
    public void StartFly()
    {
        // 将 isFly 设为 true,表示针开始飞行
        isFly = true;
        // 将 isReach 设为 true,这里假设针在开始飞行时认为已经到达起点(根据具体逻辑可能需要调整)
        isReach = true;
    }
}

6.让针具有真实物理行(可碰撞,停止等)

(1)给针头PinHead添加circle collider 2D和Rigibody,取消重力

 (2)代码撰写

Pin.cs(部分代码):让针在运行指定位置后停止下来

transform.position = Vector3.MoveTowards(transform.position, circle.position, Speed * Time.deltaTime);
if (Vector3.Distance(transform.position, circle.position) < 1.55f)
{
    //Vector3 offset = circle.position;
    //offset.y -= 1.55f ;//让针在距离圆心一定位置处停下
   // transform.position = offset;
    transform.parent = circle;
    isFly = false;
}

PinHead.cs:碰撞处理

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PinHead : MonoBehaviour
{
    // Start is called before the first frame update
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "PinHead")
        {
            Debug.LogWarning("找到了");
            GameObject.Find("GameManger").GetComponent<GameManger>().GameOver();
        }
    }
}

7.鼠标控制和游戏结束处理

(1)鼠标控制

GameManger.cs:

  void Update()
  {
      if (isGameOver) return;
      if (Input.GetMouseButtonDown(0))
      {
          // 播放音效
          if (audioSource != null&&audioSource.clip!=null)
          { 
              audioSource.Play();
          }
          score++;
          scoreText.text = score.ToString();
          currentPin.StartFly();
          ProducePin();
      }
  }

(2)游戏结束处理

GameManger.cs:

    public void GameOver()
    {
        if (isGameOver) return;
        GameObject.Find("target").GetComponent<RotateTarget>().enabled = false;
        StartCoroutine(GameOverAnimation());
        isGameOver = true;
    }


    IEnumerator GameOverAnimation()
    {
        while (true)
        {
            Camera.main.backgroundColor = Color.Lerp(Camera.main.backgroundColor, Color.red, speed * Time.deltaTime);
            Camera.main.orthographicSize = Mathf.Lerp(Camera.main.orthographicSize, 4, speed * Time.deltaTime);
            if (Mathf.Abs(Camera.main.orthographicSize - 4) < 0.01f)
            {
                break;
            }
            yield return 0;
        }
        yield return new WaitForSeconds(0.2f);
        SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
    }

8.显示分数

(1)创建Textmeshpro

(2)修改参数如下

        记得删除eventsystem(用不到)

         大小根据自己判断进行修改,如下:

(3)撰写代码

   public TextMeshProUGUI scoreText;
  void Update()
  {
      if (isGameOver) return;
      if (Input.GetMouseButtonDown(0))
      {
          // 播放音效
          if (audioSource != null&&audioSource.clip!=null)
          { 
              audioSource.Play();
          }
          score++;
          scoreText.text = score.ToString();
          currentPin.StartFly();
          ProducePin();
      }
  }

9.添加发射音效

(1)在GameManger上添加Audio resource组件,并挂载音效素材,取消播放(不勾选 Play on awake)

(2)利用代码激活音效(每次发射的时候激活音效)

  public AudioSource audioSource;//射击音效
 void Update()
 {
    ......
     if (Input.GetMouseButtonDown(0))
     {
        ......
         // 播放音效
         if (audioSource != null&&audioSource.clip!=null)
         { 
             audioSource.Play();
         }
        ......
     }
 }


五.结语

         本次实践不仅展示了如何运用 Unity 引擎的各项功能进行游戏开发,还让我们深入理解了游戏中各元素间的协同运作原理。希望这份详细的制作指南能为初学者提供清晰的学习路径,也期待开发者们基于此进一步拓展和创新,创造出更多精彩有趣的游戏作品,在游戏开发的广阔天地中不断探索前行。

Unity入门教程——制作“见缝插针”游戏 Unity的编辑器界面布局可以自定义,但通常会包括几个主要的面板:场景(Scene)视图用于构建和观察游戏世界,游戏(Game)视图展示实际运行时的游戏画面,层级(Hierarchy)视图显示场景中的所有对象及其层级结构,项目(Project)视图存储所有项目资源和文件。此外,检视(Inspector)视图提供对选中对象详细属性的编辑能力,而控制台(Console)视图显示日志、错误和警告信息。组件是附加到游戏对象上的,赋予游戏对象特定功能的代码块。了解并熟练使用组件是掌握Unity的关键。 阅读详情

相关推荐

unity见缝插针游戏

unity制作的见缝插针游戏 完整项目 直接下载用unity打开即可

Unity制作2D游戏经典入门案例《见缝插针》

这是一款使用Unity引擎制作2D游戏的入门案例,建议大家接触过3D项目后在来学习,整个工程一共5个类,代码总行数不到200行,非常适合做2D入门案例,简单新颖的玩法,趣味的讲解,快来加入吧!

C#基于Unity3D游戏设计作品-见缝插针游戏完整源码+项目说明.zip

C#基于Unity3D游戏设计作品_见缝插针游戏完整源码+项目说明.zip 【提示】 如何用Unity3D打开已有的游戏文件,直接在打开Unity3D时选择Open,能看到.vs文件夹时,直接选择这个文件 脚本是用C#写的(在Unity3D中脚本可以当作组件使用,进行拖拽) 创建UI (1)Text UI:用于记录分数 1): Rect Transform: 用于调整Text的大小 2): Text(Scripts): 里面可以设置字体样式,大小,居中等 (2)画布Canvas:是Text UI 所在的画布(创建的UI都在里面 ) 【备注】 主要针对计算机相关专业的正在做毕设的学生和需要项目实战的C#学习者。 也可作为课程设计、期末大作业。包含:项目源码、项目说明等,该项目可以直接作为毕设使用。 也可以用来学习参考借鉴! 【特别强调】 1、csdn上资源保证是完整最新,会不定期更新优化; 2、请用自己的账号在csdn官网下载,若通过第三方代下,博主不对您下载的资源作任何保证,且不提供任何形式的技术支持和答疑!!!

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

给针头添加碰撞器,选中针头,在检查器底下的添加组件,搜Circle Collider 2D添加。创建一个脚本,选择MonoBehaviour,命名为RotateSelf。将Pin放到StartPosition的下面,这样可以进行预览,调整位置。选中Circle,位置为左右居中,偏上,颜色为黑色,大小缩为0.7。使得Circle和Canvas的位置坐标一致,都为0,2,0。创建两个空对象,将第一个命名为StartPosition。选中Text,点击重置,文本居中,颜色为白色,内容为0。

ChoSeitaku的博客 687

基于Simulink的输入-输出线性化精确转矩控制

本文详细介绍了基于Simulink的永磁同步电机(PMSM)输入-输出线性化(IOL)精确转矩控制方法。针对传统解耦控制在非线性转矩特性下的局限性,通过建立PMSM非线性状态空间模型,设计IOL控制器将系统转化为线性输入-输出映射。文章包含系统原理推导、Simulink建模步骤、参数整定方法和仿真结果分析,验证了IOL在高动态、宽速域工况下的优越性能(转矩误差降低90%)。最后提出了工程实现要点和扩展应用方向,为开发高精度电机驱动系统提供了实用指导。

xiaoheshang_123的博客 304

STM32巡线小车PID调参实战:从五路灰度传感器数据到稳定运行的避坑指南

本文详细介绍了STM32巡线小车的PID调参实战,从五路灰度传感器数据处理到PID参数优化,提供了系统化的调试方法和常见问题解决方案。通过加权平均法计算偏移量,逐步调整比例、积分、微分参数,实现小车稳定巡线。文章还涵盖了定时器配置、控制周期优化及高级调试技巧,帮助开发者避开常见陷阱,提升巡线性能。

weixin_42570484的博客 193

Unity小游戏--见缝插针(含登录界面) 北京联合大学校选课程期末项目(版本5.4)

Target中添加Circle Collider2D(圆形碰撞组件),圆Pin添加Circle Collider2D、Box Collider2D(矩形碰撞组件)和Rigidbody2D,其中Rigidbody2D的重力参数为零即Gravity Scale为0,所有的Collider2D勾选Is Trigger,然后碰撞体调整至如下效果(PS:针的圆碰撞与圆形贴合即可矩形碰撞大致为针柄的一半或更短,是为了保障连发时不出现针之间的误碰而导致直接判定为失败,同时也保障了靶下针柄相互碰撞导致判定为失败。

m0_74372006的博客 784

【土壤普查实战】Python+ArcGIS随机森林模型一键生成土壤类型栅格图

本文详细介绍了如何利用Python和ArcGIS结合随机森林模型实现土壤类型栅格图的自动化生成,大幅提升土壤普查效率。通过环境准备、数据预处理、模型构建与调优等关键步骤,帮助用户掌握从样本点生成到最终栅格图输出的完整流程,适用于大面积区域或样本点较多的土壤分类任务。

weixin_29229989的博客 217

unity做一个简单的见缝插针游戏

【代码】unity做一个简单的见缝插针游戏。

qq_20179331的博客 919

三代测序选型指南:PacBio HiFi vs Nanopore vs Illumina技术对比与适用场景

本文深入对比了三代测序技术PacBio HiFi、Nanopore与Illumina的核心参数、成本模型和应用场景,为生物信息学研究提供选型指南。通过实测数据和技术组合策略分析,帮助实验室根据研究需求选择最适合的测序方案,涵盖基因组组装、表观遗传学等关键应用领域。

fern8的博客 901

OpenClaw Manager Pro - 可视化管理工具

OpenClaw Manager Pro 是一个现代化的 Web 管理界面,用于管理多个 OpenClaw Gateway 实例。🎨美观的界面:深色主题,渐变设计,现代化 UI📡实时监控:WebSocket 实时推送状态和日志🔧完整管理:创建、编辑、删除、启动、停止 Gateway📊多渠道支持:飞书、Telegram、Discord、Slack、微信、钉钉🧩技能管理:可视化配置 61+ 个技能🌍跨平台:支持 macOS、Linux、Windows使用自定义模型系统会自动在中创建},

Maynor的博客 3085

Unity开发小项目《见缝插针》

见缝插针。

luzhuyi的博客 567

SerDes电路的PCB仿真设计规则及策略

SerDes的PCB设计中,重点工作是使用3D 电磁 (EM) 场求解器,进行过孔结构优化,包括 BGA的扇入和扇出区域以及布线的过孔区域,并且,利用连接器供应商提供加密的 3D 模型,进行连接器和 PCB 的级联仿真,最终获取系统级的通道性能参数,如插入损耗、回波损耗、串扰和模式转换、阻抗曲线等,如果发现任何缺陷,再进行进一步优化,这一过程中,推荐进行拆分仿真,以提高设计效率。

一只豌豆象的博客 2191

[转] Unity实战之见缝插针

想当年,见缝插针游戏也算是火遍全网的小游戏之一。现在还有很多商场通过类似游戏赢盲盒。游戏效果如下:通过上面的游戏演示,我们来分析一下这款游戏的制作思路。1.圆盘的转动。2.动态生成需要被插的针。3.针的移动。4.针的旋转(与转盘旋转同步)。5.游戏得分。6.游戏成功与失败的判断。

小小姑娘 721

Open-AutoGLM 实战:手把手教你用 AI 操作手机「喂饭教程」

Open-AutoGLM 是一个由智谱AI开源的手机操作智能体框架,由手机端智能助手框架Phone Agent和9B大小的模型AutoGLM-Phone-9B组成,借助ADB自动执行点击、滑动、输入等操作——用户只需用自然语言描述任务,系统便能自动规划并完成整个操作流程。

blues_C的博客 1267

【异常】Nacos 2.x 核心报错:Server check fail (gRPC 端口连不通) 深度排查

如果 Nacos 运行在 K8s 中,需确保对应的Servicemetadata:spec:ports:port: 8848port: 9848 # 必须暴露此端口selector:app: nacos在 Nacos 2.x 时代,“端口成套出现”是基础设施配置的基本要求。遇到连接失败时,首要检查的不是业务配置,而是网络链路上主端口 + 1000的 TCP 通讯是否被放行。更多关于 AI + 教育领域的干货,可以关注我的微信公众号一时间获取哦~

奶爸的编程之路,也就一周冷个三天 324

百游系列逐梦星河棋牌源代码:技术全解析与多端实践

本文基于一套全新的——百游系列逐梦星河版本,纯技术分享,不涉及商用、不涉及推广、不涉及上线运营,仅供技术学习、研究和开源精神传播。河UI界面)

z926098的博客 2291

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

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

给Pin的针头添加Circle Collider 2D,勾上触发器,再添加rigidbody 2D,重力设为0。添加PinHead脚本,将其挂载到PinHead上,给PinHead添加上自己添加的PinHead标签。当游戏结束后,将主摄像头背景变为红色,并且使摄像头size变小,使得游戏内容放大。将Pin脚本拖到针Pin的下面。通过camera组件进行控制。

ChoSeitaku的博客 2042

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Unity制作“见缝插针”小游戏

控制小球旋转 using System.Collections; using System.Collections.Generic; using UnityEngine; public class RotateSelf : MonoBehaviour { //每秒旋转90度 public float speed = 90; // Update is called on...

xiaokunzhang的博客 5989

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Unity|小游戏复刻|见缝插针3代码(C#)

与目标发生碰撞,则游戏结束。游戏结束时,会有一个动画效果,然后重新加载当前场景。这是一个简单的游戏,玩家通过点击鼠标让钉子(

ChoSeitaku的博客 1242

Unity3D基础案例-见缝插针

引言:人生无处不代码,无代码处不人生。小生作为U3D学习之旅中的一员,将基础案例主要开发流程记录下来,与共同兴趣的你分享。 开发版本:unity 5.3.5f 适合人群:初学Unity者 源文件链接请见文末! 开启学习之旅吧!   01 场景搭建 创建2D工程StickPin,并创建新场景MainScene,导入素材,完成初始场景搭建 注意工程路径最好不要有中文 在Circl...

胖胖的橘猫君 8291

见缝插针小游戏制作详细步骤

详细步骤 1:打开unity,创建一个2D项目,创建一个放代码的文件夹叫Script,创建一个放预制体的文件夹叫prefab。以后的代码都放在Script文件夹里。预制体都放在prefab文件夹里。 2:网上随便找一个可以用的圆和针的图片。导入unity。 3:将图片设置为2D精灵,如下图片蓝色边框位置(Sprite(2D and UI))。 4:接下来写一个简单的代码让圆旋转起来,代码命名为Rotate。挂在圆上。代码如下: using System.Collections; using System.

weixin_46052359的博客 2173

Unity3D入门--见缝插针

是跟着Siki上的网站进行的,整理思路,原网址如下:http://www.sikiedu.com/course/78 点击打开链接打开课程的素材,只有两张图,即圆圈和针棒:可以把Image文件夹整个拖到Project-Assets下,除此之外在这里再create几个folder:Scene:存放场景,这个游戏就只有main场景一个Prefabs:存放“预设”,在Unity3D的工程建设中,Pref...

BeforeEasy的博客 4476

Unity实战之见缝插针

想当年,见缝插针游戏也算是火遍全网的小游戏之一。现在还有很多商场通过类似游戏赢盲盒。 游戏效果如下: 通过上面的游戏演示,我们来分析一下这款游戏的制作思路。 1.圆盘的转动。 2.动态生成需要被插的针。 3.针的移动。 4.针的旋转(与转盘旋转同步)。 5.游戏得分。 6.游戏成功与失败的判断。 圆盘的转动 首先,我们先来实现圆盘的转动,可以直接使用Unity为我们提供的接口:transform.Rotate public float speed = 90; transform.Rotate(new Vec

爱上游戏开发 2627

Unity小游戏2D(见缝插针)

首先做一个针以及一个目标,可以自选比如箭矢射靶,网上自己找素材都行,注意目标最好是圆的。 需要创建一个目标、针、计算得分的text、以及三个空物体命名如下 InsPoint是针生成的地方 StartPoint是游戏开始的地方 两者之间距离远一些 1.在生成好的目标上挂上代码 public class RotateSelf : MonoBehaviour { public float speed = 30;//小球旋转的速度 // Start is called before the fir

AI200的博客 1022

Unity零基础入门 - 见缝插针

Unity零基础入门 - 见缝插针(Unity2017)

wenjunanother的博客 2905
上一篇: Unity 游戏开发必会——(全网最全最详细)常用 API 和类
下一篇: UGUI 知识精讲与实用案例(第 1 弹)——Canvas 和Text Mesh Pro组件(Text组件)详解包含案例
Unity黑马王子
博客等级 码龄4年 1846粉丝 181原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值