[Untiy]贪吃蛇大作战(一)——开始界面
前言:
刚学unity没多久吧(大概1个月多点),这是我自己做的除官网之外的第一个游戏demo,中间存在很多不足的地方,但是还是希望可以给需要的人提供一些思路和帮助,有问题的小伙伴可以找我一起探讨一起学习。游戏的资源和脚本都放在我的github上了,需要的小伙伴也可以去这里clone一份资源下来自己做一做这个游戏,有不会的地方可以参考一下我的脚本,附地址:
https://github.com/li-zheng-hao/Snake-Demo
游戏开始界面:
首先游戏的开始界面仅仅涉及到一些UGUI的元素
UI部分其实没什么太多的难点,主要是要做好屏幕的适配,需要注意的地方有:
1、在Canvas画布的组件中需要将画布的渲染模式设置为Overlay,这样的话UI元素就会显示在所有游戏物体的前方,不会被遮挡。其次UI的放大缩小模式根据设计分辨率调整,这里我采用的设计分辨率是1334×750,优先按照宽度适配。
2、各个UI元素的锚点根据需求设置到相应的位置,这样在设备分辨率发生改变的情况下,UI会进行拉伸和放缩,我们需要将UI的锚点设置到父类元素的相对位置,比如左上角的头像的锚点可以设置为UI画布的左上角,这样分辨率发生变化的时候,头像的相对位置也不会发生变化,不会出现在很奇怪的位置。
3、这里的场景跳转我使用的是一个单例类SceneController脚本以及一个脚本ChangeScene来控制,下面是代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
public class SceneController : MonoBehaviour {
private static SceneController _instance;
public static SceneController Instance {
get {
if(_instance==null)
_instance = FindObjectOfType<SceneController>();
if(_instance==null)
{
GameObject gm = new GameObject("SceneController");
_instance = gm.AddComponent<SceneController>();
}
return _instance;
}
}
public virtual void Awake()
{
//如果实例化的对象不是当前的这个对象,则把当前这个对象附加在的gameobject销毁
if (Instance!=this)
{
Destroy(gameObject);
return;
}
//如果实例化的对象是当前这个对象,则在加载的时候不销毁
DontDestroyOnLoad(gameObject);
}
public void changeScene(string sceneName)
{
SceneManager.LoadScene(sceneName);
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ChangeScene : MonoBehaviour {
public void ChangeSceneByName(string sceneName)
{
SceneController.Instance.changeScene(sceneName);
}
}
在写完脚本将它挂载之后,只需要在相应的跳转的按钮上加上相应的onclick事件即可。
好了,开始界面的一些难点就是这些了。
第二章节:https://blog.csdn.net/m0_37316917/article/details/81285524
[Untiy]贪吃蛇大作战(一)——开始界面的更多相关文章
- Unity3D游戏贪吃蛇大作战源码休闲益智手机小游戏完整项目
<贪吃蛇大作战>一款休闲竞技游戏,不仅比拼手速,更考验玩家的策略. 视频演示: http://player.youku.com/player.php/sid/XMzc5ODA2Njg1Ng ...
- 贪吃蛇大作战canvas实现(手机触屏操作)--地图逻辑
//html部分 <!DOCTYPE html><html><head lang="en"> <meta charset="UT ...
- Java实现贪吃蛇游戏【代码】
花了两个下午写了一个贪吃蛇小游戏,本人想写这游戏很长时间了.作为以前诺基亚手机上的经典游戏,贪吃蛇和俄罗斯方块一样,都曾经在我们的童年给我们带来了很多乐趣.世间万物斗转星移,诺基亚曾经作为手机业的龙头 ...
- 以小时候玩的贪吃蛇为例,对于Java图像界面的学习感悟
简介 正文 01.JFrame是啥? 02.JPanel 03. KeyListener 04.Runnable 05.游戏Running 06.游戏初始类编写 07.main 简介: 一直以来用代码 ...
- [知了堂学习笔记]_用JS制作《飞机大作战》游戏_第2讲(四大界面之间的跳转与玩家飞机的移动)
一.通过点击按钮事件,实现四大界面之间的跳转: (一)跳转的思路: 1.打开软件,只显示登录界面(隐藏游戏界面.暂停界面.玩家死亡界面) 2.点击微信登录(QQ登录)跳转到游戏界面,隐藏登录界面 3. ...
- 用JS制作《飞机大作战》游戏_第2讲(四大界面之间的跳转与玩家飞机的移动)-陈远波
一.通过点击按钮事件,实现四大界面之间的跳转: (一)跳转的思路: 1.打开软件,只显示登录界面(隐藏游戏界面.暂停界面.玩家死亡界面) 2.点击微信登录(QQ登录)跳转到游戏界面,隐藏登录界面 3. ...
- 字符界面的贪吃蛇--链表--C++
前天看了下链表,由于平时对链表的使用不多,所以对链表的应用也没什么了解,所以想来想去,就想用链表实现一下贪吃蛇. 下面言归正传,先看效果图,再看代码,其他没有了! 图1: 图2: 代码: #inclu ...
- 浅析初等贪吃蛇AI算法
作为小学期程序设计训练大作业的一部分,也是自己之前思考过的一个问题,终于利用小学期完成了贪吃蛇AI的一次尝试,下作一总结. 背景介绍: 首先,我针对贪吃蛇AI这一关键词在百度和google上尽心了检索 ...
- 小项目特供 贪吃蛇游戏(基于C语言)
C语言写贪吃蛇本来是打算去年暑假写的,结果因为ACM集训给耽搁了,因此借寒假的两天功夫写了这个贪吃蛇小项目,顺带把C语言重温了一次. 是发表博客的前一天开始写的,一共写了三个版本,第一天写了第一版,第 ...
- UI创意求助:手机贪吃蛇游戏方向控制键设计
继上一片博文<做梦想起来的C#简单实现贪吃蛇程序(LinQ + Entity)>之后,尝试做一个手机版本,大部分的功能都已经实现了.但在贪吃蛇的方向控制设计上一直不太满意.由于手机界面的大 ...
随机推荐
- 一步一图带你深入理解 Linux 虚拟内存管理
写在本文开始之前.... 从本文开始我们就正式开启了 Linux 内核内存管理子系统源码解析系列,笔者还是会秉承之前系列文章的风格,采用一步一图的方式先是详细介绍相关原理,在保证大家清晰理解原理的基础 ...
- windows和虚拟机上的Ubuntu互传文件
1.简介 本文讲述的是通过ssh登录虚拟机上的Ubuntu系统,实现互传文件 2.Ubuntu端 2.1.安装ssh sudo apt-get update sudo apt-get install ...
- Codeforces 1672 E. notepad.exe
题意 这是一道交互题,有n个字符串,每个字符串长度:0-2000, n :0-2000 有一个机器对他进行排版,你可以给他一个每行的最大宽度w,那么每行只能放长度为w的字符: 每行相邻两个字符串之间至 ...
- 「MySQL高级篇」explain分析SQL,索引失效&&常见优化场景
大家好,我是melo,一名大三后台练习生 专栏回顾 索引的原理&&设计原则 欢迎关注本专栏:MySQL高级篇 本篇速览 在我们上一篇文章中,讲到了索引的原理&&设计原则 ...
- day04-JavaScript01
JavaScript01 官方文档 http://www.w3school.com.cn/js/index.asp 基本说明: JavaScript能改变html内容,能改变html属性,能改变htm ...
- vs自定义工程宏
[视图] ---->[其他窗口]----> [属性管理器 ]右键工程---->[添加新项目属性表]打开配置debug/release打开propertysheet找到用户宏即可添加
- 微信小程序经纬度转化为具体位置(逆地址解析)
小程序wx.getLocation只能获取经纬度, 这时候想要具体地址就需要借助第三方sdk(逆地址解析) 我这边第三方以腾讯位置服务举例 一. 首先小程序需要申请wx.getLocation接口权限 ...
- Day10:for循环结构的使用详解
for循环 将0~100内的奇.偶数分别求和 思路 第一步先将0~100以内的奇.偶数分成两队,第二步使奇数累加.ou'shu public class ForCirculate{ public st ...
- vue3的学习笔记:MVC、Vue3概要、模板、数据绑定、用Vue3 + element ui、react框架实现购物车案例
一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.Vue是框架而jQuery则是库. 1.2.MVC(Mo ...
- Go语言核心36讲10
我们在上次讨论了数组和切片,当我们提到数组的时候,往往会想起链表.那么Go语言的链表是什么样的呢? Go语言的链表实现在标准库的container/list代码包中.这个代码包中有两个公开的程序实体- ...