文章目录
(利用UGUI)
格子每格30
box collider2d不识别ugui的大小,需要自己设置size
游戏逻辑–实现思路
蛇头
- 移动
- (每隔一段时间invoke repeat)(突变Transform)
- (差值loop、movetowards)
- 碰撞食物
- 传送
- 蛇头
- 死亡
- 碰撞边界
- 碰撞自己身体
蛇身
- 移动
- (继承前一个的位置;从后往前挪)(双色蛇身:奇偶性赋值图片)
- (尾巴 移到蛇头后一个)
- 增加
食物
- 随机生成
- 销毁
设置
固定分辨率:
file——build setting——player setting——resolution
取消勾选default full screen;设置为1280 x 720
Display resolution dialog选择disabled
公司名称:company name
导入资源:
project面板右键——import package——custom package添加unitypackage类型资源——import
- Scenes场景
- Scripts脚本
- audio音频
- effects特效
- fonts字体
- sprites图片
- background
- icon(道具)
- snakepart(蛇)
- UI
开始场景
canvas
- bg(image)
- 背景点缀图片(image)
- controlPanel(image)
- 皮肤(text)(Toggle group)
- Toggle1蓝色
- background
- checkmark
- 小蛇–蛇头蛇身组合(image)
- label:科技小蛇
- background
- Toggle2黄色
- background
- checkmark
- 小蛇–蛇头蛇身组合(image)
- label:小黄人蛇
- background
- Toggle1蓝色
- 模式(text)(Toggle group)
- Toggle1
- background
- checkmark
- label:边界模式(outline)
- background
- Toggle2
- background
- checkmark
- label:自由模式(outline)
- background
- Toggle1
- 分数(text)
- 上次:长度0,分数0(text)
- 最好:长度0,分数0(text)
- 皮肤(text)(Toggle group)
- title(text)(shadow)
- go(image)(Button组件)(outline)(shadow)
- 开始(text)
canvas:
render mode——screen space camera(多用于2d游戏)
(overlay:多用于3d,ui一直显示在最上层,hud抬头显示)
设置render camera为主摄像机main camera
**背景图片:**image
填充:anchor设置alt下最右下角
设置source image为背景图片
**左边栏:**image
设置source image为unity自带的background图片
color:透明度a为120
左侧填充:anchor设置alt下最左下角
**标题:**text
贪吃蛇
居中
选择字体
anchor设置 中上
**开始按钮:**image(Button组件)(outline)(shadow)
设置source image为go
set native size
左边栏控制:
皮肤、模式、分数:
居中、斜体、字体
anchor设置 中上
*分数:*text
anchor设置 中上
*模式:*创建Toggle
label——边界模式、自由模式
background——anchor设置 左中
checkmark——anchor设置alt下最右下角
模式添加Toggle group,Toggle设置Toggle group
皮肤:创建Toggle
background——anchor设置alt下最右下角
checkmark——anchor设置 最左上角
label——anchor设置alt 最右上角——科技小蛇、
background下面添加image小蛇
每个隔着35
(面板上 位置 可以写计算式子)
游戏场景
复制开始场景,进行修改
canvas
- bg
- 边界 上下左右(image)(box collider 2d)
- panel
- 模式
- 得分
- 长度
- 首页按钮底图(image)(Button)
- 首页图片(image)
- 暂停按钮底图(image)(Button)
- 暂停图片(image)
**模式:**无尽模式
设计的时候按照最大的来
得分、长度:(第一行)
0(第两行)
按钮:
底部图片设置为unity自带的UIsprite
子物体设置图片
**边界:**空物体
anchor设置 中上、下、左、右
添加collider、设置size
添加image、图片为自带的background、颜色红色
蛇头
image
设置图片
大小45
制作为预制体Prefab
添加脚本SnakeHead
》SnakeHead
自行移动(格子)
键盘控制移动
蛇头朝向变化
不能反向移动
按空格加速移动
public float velocity=0.35f;//移动的间隔时间
public int step;//一步走多少
private int x;//x坐标 增量
private int y;//y坐标 增量
private Vector3 headPos;//头部坐标
void Start()
{
InvokeRepeating("Move",0,velocity);//重复调用(方法名字,执行此句后多久开始调用,隔多久调用一次)
//最初的移动方向(向上)
x=0;
y=step;
}
void Update()
{
if(Input.GetKeyDown(KeyCode.Space))//按空格 加速移动
{
CancelInvoke();//必须先结束重复调用 再修改参数
InvokeRepeating("Move",0,velocity-0.2f);//缩短移动一次的间隔时间=加速移动
}