unity小游戏-插针游戏

2023-11-23 19:08
文章标签 游戏 unity 小游戏 插针

本文主要是介绍unity小游戏-插针游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

public class Pin : MonoBehaviour
{public float speed = 15;//插针移动到发射点的速度public float speed1 = 25;//插针移动到目标位置点的速度private bool isFly = false;//是否往目标点发射private bool isReach = false;//是否到达就绪点private Transform startPoint;//起始点(空物体)private Transform circle;private Vector3 targetCirclePos;//Pin的目标位置点void Start(){startPoint = GameObject.Find("StartPoint").transform;//获取就绪点的Transformcircle = GameObject.Find("Circle").transform;//获取circle的TransformtargetCirclePos = circle.position;//圆形的位置点targetCirclePos.y -= 1.48f;//计算得到Pin的位置点}void Update(){if (isFly == false){if(isReach == false){transform.position = Vector3.MoveTowards(transform.position, startPoint.position, speed1 * Time.deltaTime);//往就绪点发射//如果插针和就绪点之间的距离小于0.05,表示插针到达位置点if (Vector3.Distance(transform.position, startPoint.position) < 0.05f){isReach = true;}}}else{transform.position = Vector3.MoveTowards(transform.position, targetCirclePos, speed * Time.deltaTime);//往目标点移动//如果Pin的位置和目标位置点的距离小于0.05if (Vector3.Distance(transform.position, targetCirclePos) < 0.05f){transform.position = targetCirclePos;transform.parent = circle;//把当前插针的父亲设置为circle  这样能够跟随父物体一起运动isFly = false;//不再运动}}}public void StartFly(){isFly = true;isReach = true;}
}
public class GameManager : MonoBehaviour
{private Transform startPoint;//就绪点private Transform spawnPoint;//开始点public GameObject pinPrefabs;private Pin currentPin;private bool isGameOver = false;private int score = 0;//定义分数变量public Text scoreText;//在面板直接拖拽赋值private Camera mainCamera;//游戏结束的渐变动画public float speed = 3;//设置动画渐变的速度// Start is called before the first frame updatevoid Start(){startPoint = GameObject.Find("StartPoint").transform;spawnPoint = GameObject.Find("SpawnPoint").transform;mainCamera = Camera.main;//获取主相机SpawnPin();}// Update is called once per framevoid Update(){if (isGameOver) return;if (Input.GetMouseButtonDown(0))//如果鼠标按键按下,分数+1{score++;scoreText.text=score.ToString();//.text的类型是StringcurrentPin.StartFly();SpawnPin();}}void SpawnPin(){currentPin = GameObject.Instantiate(pinPrefabs, spawnPoint.position, pinPrefabs.transform.rotation).GetComponent<Pin>();//根据pinPrefabs生成对象}//处理游戏的失败public void GameOver(){if (isGameOver) return;//如果isGameOver=true 直接游戏结束GameObject.Find("Circle").GetComponent<RotateSelf>().enabled = false;//脚本失效StartCoroutine(GameOverAnimatiion());//开启协程isGameOver = true;//游戏继续}IEnumerator GameOverAnimatiion(){while (true){mainCamera.backgroundColor = Color.Lerp(mainCamera.backgroundColor, Color.red, speed * Time.deltaTime);//插值,speed参数反映了变化的速度mainCamera.orthographicSize = Mathf.Lerp(mainCamera.orthographicSize, 4, speed * Time.deltaTime);//lerp插值运算,朝目标颜色、size的变化if (Mathf.Abs(mainCamera.orthographicSize - 4) < 0.01){break;}yield return 0;}yield return new WaitForSeconds(1);//暂停一秒继续SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);//重新加载场景}
}
public class RotateSelf : MonoBehaviour
{public float speed = 100;// Update is called once per framevoid Update(){transform.Rotate(new Vector3(0, 0, speed * Time.deltaTime));}
}
public class PinCircleTrigger : MonoBehaviour
{// Start is called before the first frame updateprivate void OnTriggerEnter2D(Collider2D other){//碰撞监测函数,如果主动碰撞的名字为PinHead,触发碰撞监测函数if (other.tag == "PinHead"){GameObject.Find("GameManager").GetComponent<GameManager>().GameOver();//GameManager对象的GameManager脚本的GameOver方法}}
}

这篇关于unity小游戏-插针游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/420082

相关文章

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

C#和Unity中的中介者模式使用方式

《C#和Unity中的中介者模式使用方式》中介者模式通过中介者封装对象交互,降低耦合度,集中控制逻辑,适用于复杂系统组件交互场景,C#中可用事件、委托或MediatR实现,提升可维护性与灵活性... 目录C#中的中介者模式详解一、中介者模式的基本概念1. 定义2. 组成要素3. 模式结构二、中介者模式的特点

Python38个游戏开发库整理汇总

《Python38个游戏开发库整理汇总》文章介绍了多种Python游戏开发库,涵盖2D/3D游戏开发、多人游戏框架及视觉小说引擎,适合不同需求的开发者入门,强调跨平台支持与易用性,并鼓励读者交流反馈以... 目录PyGameCocos2dPySoyPyOgrepygletPanda3DBlenderFife

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

Python实例题之pygame开发打飞机游戏实例代码

《Python实例题之pygame开发打飞机游戏实例代码》对于python的学习者,能够写出一个飞机大战的程序代码,是不是感觉到非常的开心,:本文主要介绍Python实例题之pygame开发打飞机... 目录题目pygame-aircraft-game使用 Pygame 开发的打飞机游戏脚本代码解释初始化部

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Python开发围棋游戏的实例代码(实现全部功能)

《Python开发围棋游戏的实例代码(实现全部功能)》围棋是一种古老而复杂的策略棋类游戏,起源于中国,已有超过2500年的历史,本文介绍了如何用Python开发一个简单的围棋游戏,实例代码涵盖了游戏的... 目录1. 围棋游戏概述1.1 游戏规则1.2 游戏设计思路2. 环境准备3. 创建棋盘3.1 棋盘类

国产游戏崛起:技术革新与文化自信的双重推动

近年来,国产游戏行业发展迅猛,技术水平和作品质量均得到了显著提升。特别是以《黑神话:悟空》为代表的一系列优秀作品,成功打破了过去中国游戏市场以手游和网游为主的局限,向全球玩家展示了中国在单机游戏领域的实力与潜力。随着中国开发者在画面渲染、物理引擎、AI 技术和服务器架构等方面取得了显著进展,国产游戏正逐步赢得国际市场的认可。然而,面对全球游戏行业的激烈竞争,国产游戏技术依然面临诸多挑战,未来的

火柴游戏java版

代码 /*** 火柴游戏* <p>* <li>有24根火柴</li>* <li>组成 A + B = C 等式</li>* <li>总共有多少种适合方式?</li>* <br>* <h>分析:</h>* <li>除去"+"、"="四根,最多可用火柴根数20根。</li>* <li>全部用两根组合成"1",最大数值为1111。使用枚举法,A和B范围在0~1111,C为A+B。判断</li>** @

国产游戏行业的崛起与挑战:技术创新引领未来

国产游戏行业的崛起与挑战:技术创新引领未来 近年来,国产游戏行业蓬勃发展,技术水平不断提升,许多优秀作品在国际市场上崭露头角。从画面渲染到物理引擎,从AI技术到服务器架构,国产游戏已实现质的飞跃。然而,面对全球游戏市场的激烈竞争,国产游戏技术仍然面临诸多挑战。本文将探讨这些挑战,并展望未来的机遇,深入分析IT技术的创新将如何推动行业发展。 国产游戏技术现状 国产游戏在画面渲染、物理引擎、AI