首先做一个针以及一个目标,可以自选比如箭矢射靶,网上自己找素材都行,注意目标最好是圆的。
图片拖入到unity中需要修改成下面的属性

创建一个目标命名为Circle、针命名为Pin、计算得分的Text、以及三个空物体命名如下:

InsPoint是针生成的地方,StartPoint是游戏开始的地方,两者之间距离远一些,InsPoint、StartPoint、Circle的x轴是一样的

1.修改text的属性
把宽和高修改为3,把字体大小修改为1,调整合适的大小以及调整到合适的位置。

2.在生成好的目标上挂上代码

public class RotateSelf : MonoBehaviour
{public float speed = 30;//小球旋转的速度// Start is called before the first frame updatevoid Start(){}// Update is called once per framevoid Update(){transform.Rotate(new Vector3(0,0,-speed*Time .deltaTime));//这个是顺时针旋转 如果想要逆时针旋转把-speed前的-号删除即可}
}

这个是代表中间旋转的目标的速度

3.生成一个针,在针的物体上加入Rigidbody 2D把Gravity设置成0、Capsule Collider 2D调整到合适的大小并且修改Pin的Tag属性为PinHead。
然后在针上挂上代码

public class Pin : MonoBehaviour
{public bool isReah=false;public bool isFly=false;private Transform startPoint;private Transform circlePos;//圆的位置public float speed = 3;//针移动的速度private Vector3 endPoint;//结束位置// Start is called before the first frame updatevoid Start(){startPoint = GameObject.Find("StartPoint").transform;circlePos=GameObject.Find("Circle").transform;endPoint = circlePos.position;endPoint.y -= 2.6f;}// Update is called once per framevoid Update(){if (isFly == false){if (isReah == false){transform.position = Vector3.MoveTowards(transform.position, startPoint.position, speed * Time.deltaTime);if (Vector3.Distance(transform.position, startPoint.position) < 0.05f){isReah = true;}}}else{transform.position = Vector3.MoveTowards(transform.position, endPoint, speed * Time.deltaTime);if (Vector3.Distance(transform.position, endPoint) < 0.05){isFly = false;transform.parent = circlePos;}}}public void StartFly() {isFly = true;isReah = true;}
}

这个是检测到针碰到另一个针的时候结束游戏

public class PinHead : MonoBehaviour
{private void OnTriggerEnter2D(Collider2D collision){if (collision.tag == "PinHead"){GameObject.Find("GameManger").GetComponent<GameManger>().GameOver();//游戏结束}}}

然后把针移动到Perfab里生成一个预设体,并且把针的实体删除。

4.在GameManger挂上代码
在GameManger脚本中添加两个命名空间
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class GameManger : MonoBehaviour
{public GameObject PinPrefab;//针的预设体private Transform insPoint;//实例化的位置public Pin currentPin;//当前针public bool isOver;//判断当前是否结束public GameObject Circle;public Text scoreText;//分数显示的文本public int score = 0;//等分数public Camera mainCamera;public int speed=3;//渐变的速度// Start is called before the first frame updatevoid Start(){insPoint = GameObject.Find("InsPoint").transform;InsPin();mainCamera = Camera.main;//获取主相机}// Update is called once per framevoid Update(){if (isOver) return;//获取鼠标点击 0-鼠标左键 1-鼠标右键 2-鼠标中键if (Input.GetMouseButtonDown(0)){score++;scoreText.text = score.ToString();currentPin.StartFly();//Debug.Log("鼠标左键点击了一下");InsPin();}}//实例化针void InsPin() {currentPin = GameObject.Instantiate(PinPrefab, insPoint.position, PinPrefab.transform.rotation).GetComponent<Pin>();}public void GameOver() {if (isOver) return;Circle.GetComponent<RotateSelf>().enabled = false;isOver = true;StartCoroutine(GameOverAnimation());//开启协程}//协程IEnumerator GameOverAnimation() {while (true){//切换游戏结束相机的颜色mainCamera.backgroundColor = Color.Lerp(mainCamera.backgroundColor, Color.red, speed * Time.deltaTime);mainCamera.orthographicSize = Mathf.Lerp(mainCamera.orthographicSize,4,speed*Time.deltaTime);if (Mathf.Abs(mainCamera.orthographicSize-4)<0.01){break;}yield return 0;}//延迟调用yield return new WaitForSeconds(1);SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);}
}

按照这个把相应的东西挂载上

5.然后添加游戏结束的效果
修改相机的camera属性

这是修改完的样子。

因为这些也是我初次学习弄的,有什么问题请多多包涵~~~

Unity小游戏2D(见缝插针)相关推荐

  1. unity小游戏制作之见缝插针

    unity小游戏制作之见缝插针 先看效果图这个游戏是一个入门的小游戏,主要技术就是圆盘的旋转,针跟随圆盘旋转以及分数累加等 游戏先拖入一个圆,更改格式为2D然后建立脚本使其转动 public clas ...

  2. Unity小游戏-彩笔画师(安卓、PC)2D益智类游戏 项目展示+完整项目源码

    游戏录像 游戏玩法 谁画在屏幕上占的颜色最多,谁获胜. 功能 1.游戏有多个关卡,每个关卡的人机难度不一致. 2.可以存金币购买角色,不同角色的技能和属性不一样. 3.每个关卡的评分等数据存到本地. ...

  3. Unity小游戏-平衡大师(安卓、PC、web)2D益智类游戏 项目展示+完整项目源码

    游戏录像 游戏试玩 平衡带师_平衡带师html5游戏_4399h5游戏-h.4399.com 游戏玩法 这是一款类似堆积木的游戏,它非常考验玩家的智商和手速,难度系数很高的游戏,谁能征服它,谁就是平衡 ...

  4. 自制Unity小游戏TankHero-2D(1)制作主角坦克

    自制Unity小游戏TankHero-2D(1)制作主角坦克 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的. ...

  5. 自制Unity小游戏TankHero-2D(3)开始玩起来

    自制Unity小游戏TankHero-2D(3)开始玩起来 我在做这样一个坦克游戏,是仿照(http://game.kid.qq.com/a/20140221/028931.htm)这个游戏制作的.仅 ...

  6. Unity开发游戏--2D坦克大战(一)

    Unity开发游戏--2D坦克大战(一) 前言 开发环境 场景搭建 新建工程 导入素材 设置Camera 设置游戏窗口大小 保存场景 创建角色 创建图片角色 修改角色大小 生成Prefab 前言 游戏 ...

  7. 2022unity超简单课设-模拟太阳系的Unity小游戏

    模拟太阳系的Unity小游戏(附下载链接) 下载链接 unity课程实践做的一个模拟太阳系的Unity小游戏,你可以使用飞船移动来查看太阳系中的各个星球. 飞船拥有两种驾驶模式,一种更加真实,是通过给 ...

  8. Unity 小游戏:3D射箭

    Unity 小游戏:3D射箭 前两周因为实训太忙,再加上自己对老师所讲的设计模式并不是很理解,所以就没有写博客.这次博客是记录3D射箭游戏的实现过程. Unity 小游戏3D射箭 准备资源 布置场景 ...

  9. Unity小游戏(一)——Unity JigsawPuzzle(拼图游戏)

    1.前言: 简单的Unity小游戏,切割图片,生成随机区块,拖拽交换位置. 此游戏代码只贴了一小部分,具体可见GitHub:源码 效果: 2.素材准备 简单做了下,所以没有用太多素材,只准备了两种字体 ...

最新文章

  1. 数据结构(C语言版) 第 三 章 栈与队列 知识梳理 + 作业习题详解
  2. JavaScript DOM编程艺术 - 读书笔记1-3章
  3. 七、发生交通事故后的自救、急救等基本知识,以及常见危险化学品等知识
  4. ERROR Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException
  5. windows10在线升级失败后的一些补救措施
  6. kbmmw中向服务器端传递对象的一种简单方式
  7. ctr z撤回反向_Ctrl+Z 的反快捷键是什么
  8. [操作系统]Nachos4.1安装教程(docker+linux)
  9. [python3]坦克大战
  10. 数据分析在银行业应用之欺诈检测
  11. 使用PIE下载Sentinel-2 时序NDVI数据
  12. P4218 [CTSC2010]珠宝商
  13. 游戏任务剧情布局系统分析
  14. 【计算机网络】已知若干个网络,如何计算汇聚成超网后的地址?
  15. STM32 之三 标准外设版USB驱动库详解(架构+文件+函数+使用说明+示例程序)
  16. 如何使用Arduino Uno开发板制作超声波测距仪
  17. HC-SR04超声波测距块讲解(附32单片机源码)
  18. 【时间序列异常检测】时序异常检测综述整理(2020-2021)
  19. 打造微信小程序伪状态管理器
  20. Fast Rcnn 和Faster Rcnn

热门文章

  1. 用python玩转数据Python便捷数据获取与预处理 quiz
  2. mysql中 where in 用法详解
  3. 中国电信市场类职位面试题和笔试题库及参考答案(内部竞聘和社招用)
  4. 易语言微信hook教程
  5. 拆解探索MagSafe电源接口结构和指示灯变颜色原理
  6. POE:性价比最高的 AI 整合网站
  7. 史上最全的MonkeyRunner自动化测试从入门到精通(1)
  8. Ue4----必备网络知识
  9. 中债登、银行间市场、上清所… 这些机构你能分清几个?
  10. 美联储加持的小众语言 Julia ,能否成为机器学习的明日之星?