注意:锚点设置技巧,靠哪近放在哪
1.将Start场景复制
2.删掉不需要的东西
3.控制面板保存三个Text,“无尽模式”、“得分:0”、“长度:0”
4.添加两个图片,添加Button控件,Home键和暂停键
注意:锚点设置技巧,靠哪近放在哪
1.将Start场景复制
2.删掉不需要的东西
3.控制面板保存三个Text,“无尽模式”、“得分:0”、“长度:0”
4.添加两个图片,添加Button控件,Home键和暂停键
注意,UGUI的渲染顺序是层级面板的前后顺序,所以应该注意大面板与控制面板与文字的先后关系
1.为界面添加食物图片,添加Image,源图片添加食物图片,重复以上操作,添加所有食物图片
2.设计控制面板:
技巧:先设计第一个,规范第一个大小,字体,样式后直接复制
锚点大小快捷设置可以将图片快捷填充到父对象大小
对多个游戏对象的同一属性赋同样的值,可以全选中在赋
·在控制面板下创建三个Text,分别为
------------------------
“皮肤”:锚点四点控制面板上边中
皮肤下创建一个toggle,改名Blue,锚点上边中,背景锚点大小全铺,对勾锚点左上角,位置左上,字体为“科技小蛇”
在背景下创建几个Image,源文件拖入几个蛇的元素,组成一条蛇,舌头教徒转90
复制粘贴Blue,创建另一条“小黄人蛇”
设置单选框组
-------------------------
“模式”:锚点四点控制面板左线中
在模式下创建一个UI-Toggle单选框
Label改变:Text“边界模式”,设置字体,字体颜色,为单选框的Label添加OutLine组件
BackGround改变:改变大小,改到合适,锚点左边中,改变颜色透明度
CheckMark摁住alt,在锚点大小快捷设置里alt摁最后一个,勾勾会填充到父对象大小
复制边界模式,改名自由模式
由于自由模式与边界模式的单选框是互斥的,在模式父对象下加一个组件ToggleGroup,表示两个单选框为一组
将父对象Mode拖入 自由模式与边界模式的Toggle组件下的Group属性表示其为一组
找到边界模式,将Toggle组件下InOn(取消激活)的钩去了
----------------------------------------
“历史”:锚点四点控制面板下边中
在历史下设置两个子对象Text:
“上次:长度0,分数0”、
“最好,长度0,分数0”
锚点上边中
(锚点快捷设置都是以父对象为基准)
1.创建2D工程Snack
2.改变分辨率:
·File-BuildSettings窗口,点击该窗口右下角PlayerSettings
·监视面板中点击Resolution,将全屏勾掉,分辨率改为1280*720
·将DisplayResolutionDialog改为Disable(运行时直接按照默认分辨率,否则开始时会询问分辨率)
注:没有apply按钮,就是自动保存
3.设置公司名,宣布主权:监视面板companyName写一个
4.在工程面板导入资源:右键inportPackage-CustomPackage,将资源(后缀名UnityPackage,课程网盘有)导入
玩法:WASD 空格加速
功能:两种蛇、比分、两种模式、平台食物加分,问号加随机分、暂停、背景颜色由
创建一个空体,归零,重命名为ScriptsHolder,把StartUIController挂上,再把ControlPanel中的Last和Best挂上,打完代码后,把Home,Start与其绑定"StartUIController.StartGame",把Skin中的Blue和Yellow与“StartUIController.StartGame”绑定,选中BlueSelected和YSelected
把ExpFbx拖到Die Effect,作为死亡特效
在Scripts建一个脚本,重命名MainUIController,
代码如下:
public class
在Canvas里建一个Image,重命名Reward,把文件Tool中的Question拖入场景,Width:30 Height:30 加Box Collider2D,Size X:28 Y:28 将Reward拖到Prefabs.
把Reward拖到ScriptsHolder中的Reward Prefab中
点击SnakeBody,给身体加标签取名为B
在Canvas上建一个Image,重命名SnakeBody,把sb0201导入,Width:40 Height:40,Pos X:0 Pos Y:0,将SnakeBody作为预制体,删掉蛇身
Sh里,加Box collider 2D,Width:45 Height:45 Size X: 28 Y:28,选中Is Trigger,,加Rigidbody 2D,且不启用重力。
Food里,加Box collider 2D,Width:40 Height:40 Size X: 28 Y:28,选中Tags,输入food标签
{
public float velocity=0.35f;
public int step;
private int x;
private int 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);
}
if(Input.GetKeyUp(KeyCode.Space))
{
CancelInvoke();
InvokeRepeating("Move",0,velocity);
}
if(Input.GetKey(KeyCode.W)&&y!=-step)
{ gameObject.transform.localRotation=Quaternion.Euler(0,0,0);
x=0;y=step;
}
if(Input.GetKey(KeyCode.S)&&y!=step)
{
gameObject.tranform.localRotation=Quaternion.Euler(0,0,180);
x=0;y=-step;
}
if(Input.GetKey(KeyCode.A)&&x!=step)
{
gameObject.tranform.localRotation=Quaternion.Euler(0,0,90);
x=-step;y=0;
}
if(Input.GetKey(KeyCode.D)&&x!=-step)
{
gameObject.tranform.localRotation=Quaternion.Euler(0,0,-90);
x=step;y=0;
}
void Move()
{
headPos=gameObject.transform.localPosition;
gameObject.transform.localPosition=new Vector3(headPos.x+x,headPos.y+y)
}
private void OnTriggerEnter2D(Collider2D collision)
{
if(collision.gameObject.CompareTag("Food"))
{
Destroy(collision.gameObject);
FoodMaker.Instance.MakeFood();
}
}
在ControPanel下建Image,Width:40,Height:40,再写脚本FoodMaker
{
public int xlimit=21;
public int ylimit=11;
public int xoffset=7;
public GameObject foodPrefab;
public Sprite[] foodSprites;
private Transform foodHolder;
void Start()
{
foodHolder=GameObject.Find("FoodHolder").transform;
MakeFood();
}
void MakeFood()
{
int index=Random.Range(0,foodSprites.Length);
GameObject food=Instantiate(foodPrefab);
food.GetComponent<Image>().sprite=foodSprites[index];
food.transform.SetParent(foodHolder,false);
int x=Random.Range(-xlimit+xoffset,xlimit);
int y=Random.Range(-ylimit,ylimit);
food.transform.localPosition=new Vector3(x*30,y*30,0);
}
}
创建一个GameObject,重命名ScriptsHolder,将Food Maker放里,把Icon文件里的Food放入 Food Sprites。
{
public float velocity=0.35f;
public int step;
private int x;
private int 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);
}
if(Input.GetKeyUp(KeyCode.Space))
{
CancelInvoke();
InvokeRepeating("Move",0,velocity);
}
if(Input.GetKey(KeyCode.W)&&y!=-step)
{ gameObject.transform.localRotation=Quaternion.Euler(0,0,0);
x=0;y=step;
}
if(Input.GetKey(KeyCode.S)&&y!=step)
{
gameObject.tranform.localRotation=Quaternion.Euler(0,0,180);
x=0;y=-step;
}
if(Input.GetKey(KeyCode.A)&&x!=step)
{
gameObject.tranform.localRotation=Quaternion.Euler(0,0,90);
x=-step;y=0;
}
if(Input.GetKey(KeyCode.D)&&x!=-step)
{
gameObject.tranform.localRotation=Quaternion.Euler(0,0,-90);
x=step;y=0;
}
void Move()
{
headPos=gameObject.transform.localPosition;
gameObject.transform.localPosition=new Vector3(headPos.x+x,headPos.y+y)
}
}
在Canvas里建Image,重命名为Sh,把sh02拖入场景, Pos X:0,Pos Y:0 Width:45 Height:45,新建Prefabs,将Sh拖入该文件,点击Apply。新建Scripts文件,在该文件下建SnaKeHead,双击打开,敲代码:
{
public float velocity=0.35f;
public int step;
private int x;
private int y;
private Vector3 headPos;
void Start()
{
InvokeRepeating("Move",0,velocity);
x=step;y=0;
}
void Update()
{
if(Input.GetKey(KeyCode.W))
{
x=0;y=step;
}
if(Input.GetKey(KeyCode.S))
{
x=0;y=-step;
}
if(Input.GetKey(KeyCode.A))
{
x=-step;y=0;
}
if(Input.GetKey(KeyCode.D))
{
x=step;y=0;
}
void Move()
{
headPos=gameObject.transform.localPosition;
gameObject.transform.localPosition=new Vector3(headPos.x+x,headPos.y+y)
}
}
保存代码,然后将代码挂上,点击Apply,调整Step:30。
Bg下建GameObject,重命名UP作为一个碰撞器,锚点Pos X:105,Pos Y:10,Width:1070,Height:30;加Box Collider 2D,Size X:-105,Y:0
复制粘贴UP,重命名Down,锚点Pos X:105,Pos Y:-10,Width:1070,Height:30;
复制粘贴Down,重命名Right,锚点Pos X:30,Pos Y:0,Width:70,Height:720;Size X:10,Y:720
复制粘贴Right,重命名Left,锚点Pos X:210,Pos Y:0,Width:10,Height:720;Size X:10,Y:720,Offset X:-20
给所有的主键挂上Image,导入BackGround,color:红色,
将Scenes文件中的Start复制粘贴,重命名Main,双击Main,除了Msg,Mode和Bg保留,其余的东西删掉,把Mode改名为Score,调整Pos X:150 Pos Y:150 Height:100,输入“得分:0”,Font Size:40;然后复制粘贴Score重命名Length,调整Pos X:150 Pos Y:-60 Height:100,输入“长度:0”,Font Size:40。
ControlPanel中新建Image,重命名Home把UI中的Home拖入场景,导入UISprite,Width:80 Height:80,透明度为128,加Button,在Home下建Image,重命名Home,把UI文件里的Home拖入场景,Width:70 Height:70,Pos X:55 Pos Y:I10,mageType改为Sliced.
把Home复制粘贴,重命名为Pause,Pos X:-55Pos Y:110 。
把Home复制粘贴,重命名为Pause,Pos X:-55Pos Y:110 。
把Home复制粘贴,重命名为Pause,Pos X:-55Pos Y:110 。
在Bg里建一个Image,把Food文件中的icecream-01拖入Source Image ,调整宽、高均为80,透明度为175,重命名为Food1,重复上述把icecream-02到icecream-10的元素调整到画板各个位置
ControPanel建一个Text,输入皮肤,Font Style:Bold aND Italic Font Size:35 Width 200 Height:50 PosX:0 Pos Y-50,重命名Skin
ControPanel建一个Text,输入模式,Font Style:Bold aND Italic Font Size:35 Width 200 Height:50 PosX:150 Pos Y-50,重命名Mode
ControPanel建一个Text,输入分数,Font Style:Bold aND Italic Font Size:35 Width 200 Height:50 PosX:0 Pos Y165,重命名Score,在Score中建Text,输入“上次:长度0,分数:0”Width:250 Height:50 PosX:0 Pos Y-75,重命名为Last。复制粘贴Last,改名为Best,输入“最好:长度0,分数:0”Width:250 Height:50 PosX:0 Pos Y-125。
Mode中建Toggle,Width:200 Height:50 Left :55输入“边界模式”调为居中,Font Size:30 color:#FF5858FF,加Outline,Background调整Width:35 Height: 35 Pos X:30 Pos Y:0 color:#F89D9DC8 透明度:200,将BackGround重命名Border,复制粘贴重命名为NoBorder,将Border选中调节锚点位置Pos X:0 Pos Y:-85,NoBorder选中调节锚点位置Pos X:0 Pos Y:-150,输入“自由模式”,其BackGround的color:#97C599C8。
Mode里,挂主键Toggle Group,选中NoBorder,勾掉Is On,把Mode拖入Group。
在Skin中建Toggle,Width 280 Height:100 PosX:0 Pos Y-115,重命名:Blue,调节BackGround的锚点,颜色改为蓝色,Checkmark调整Right 50 Height:50 PosX:50 Pos Y-25 Label调整Right:0 Height:50 PosX:0 Pos Y-25,输入“科技小蛇”,Font Size:25.在BackGrond中建Image,将文件SnakePart中的sh01拖到Source Image,Rotion Z:90,Pos X:-100 PosY:-20,将Image复制粘贴,,Pos X:-65PosY:-20,再复制粘贴,Pos X:-30PosY:-20,再复制粘贴,Pos X:40PosY:-20,再复制粘贴,Pos X:75PosY:-20。把Blue复制粘贴,重命名为Yellow,重复上述步骤,输入“小黄人蛇”,拖入sh02,勾掉Is On。Skin上加Toggle Group,最后将Blue 和Yellow的Group设定。
将bg拖入Scene,创建Canvas,将Render Mode选为Screen Spare-Camera,然后把摄像机拖到Render Camera,将image重命名Bg,Anchor Presets按住ALT键让Bg与Canvas一样大小且锚点对齐 ,将Background中的bg拖到Source Image。
在Canvas中创建一个Image,作为面板的背景图,选择ugi自带的Background,将颜色透明调位128,Anchor Presets按住ALT选择左对齐,调整宽度 :300,重命名ControlPanel
在Canvas中创建一个Text,写下贪 吃 蛇,Anchor Presets按住ALT选择上对齐Makefont_yueyuan,字体宽度:500 高度:150 Pos X:95 Pos y-80 Font Size:80 Font Style:Bold,将Text重命名Title
在Canvas中创建一个Image,改名为Go,选择文件Select Sprite中的Go,点击Set Native Size,宽:300 高度:300,与标题保持竖直,加button主键,为了凸显按钮,再加一个Outline和Shadow,将Outline中的Effect Distance X改为2 Y改为-2,将Shadow中的Effect Distance X改为3 Y改为-3,添加Text,输入开始,Font Size:75,宽:300 高:300。点击Title,color取色器颜色更改为 #FF5858FF,加Shadow,Effect Distance X改为3 Y改为-3
取消Default Is Full Screen*,将DisplayResolution Dialog改为Disabled,这样可以默认分辨率
导入事先下好的资源
选中Sprites中的BgPart.png用PS软件打开,在PS中点击编辑,定义图案,确定。然后点击新建,高度1080,宽度1920,分辨率72,点击编辑中的填充,自定义图案BgPart.png,点击确定。最后保存为