20677人加入学习
(123人评价)
Unity初级案例 - 贪吃蛇(Unity2017.2.0)

制作于2017.12.16

价格 免费

Bulid setting-Player Setting-Resolution-Default is Full Screen

 

Display Resolution Dialog

[展开全文]

选择皮肤

两种模式

历史记录

撞到死亡

积分换背景

[展开全文]

蛇头 承担大部分功能:

move 分为蛇头自己的移动和蛇身的移动

eat 吃食物 1.加一个蛇身 2.销毁食物

碰撞边界死亡

无边界传送

蛇身 承担与蛇头碰撞检测功能

加一个collider做检测

 

蛇头移动以突变(Transform)进行而不是插值(Lerp)变化或者(MoveToward)移动

用InvokeRepeating进行

 

蛇身有两种方法移动

1.让所有蛇身向“前”加1。实现起来较为困难。

方法:让每一个蛇身继承前一个位置,从后往前继承。

2.把最后一个蛇身移到蛇头后第一个节点。

 

由于双色蛇身,方法2会导致蛇身换色,吃食物加蛇身会颜色混乱。

 

 

吃东西

吃后加蛇头后第一个节点导致颜色混乱,所以加蛇尾节点

 

死亡

蛇头碰撞边界Collider检测

 

传送

蛇头Transform 变负值即可

[展开全文]
  • 2D碰撞器相交也会触发OnTriggerEnter() 此时需要将碰撞器面积设置得稍小一些。
[展开全文]
  • CancelInvoke可用于停止InvokeRepeating以修改一些参数
[展开全文]
  • UGUI 移动需要用localPosition,因为Canvas相对于世界坐标具有偏移量
  • Input.GetKey(KeyCode.W)
  • InvokeRepeating("Move",0,velocity)
[展开全文]

alt点 canvas rect transform可以拉伸

 

outline 描边组件

shadow阴影组件

[展开全文]
  • Toggle Group组件,使得只能单选
  • 按照层级顺序渲染,因此背景首先渲染总要放在上面。
[展开全文]
  • Canvas:Render Mode:Overlay 表示UI层始终在最前方。(一般用来做小地图)  Camera模式一般用于做GUI 2d游戏 
[展开全文]

 InvokeRepeating("Move", 0, velocity);

重复调用Move方法,什么时候开始,重复的频率

Input.GetKey(KeyCode.W)

按下键盘的w建

[展开全文]

制作格子背景不一定要P图,也可以把图片设置成repeat然后在场景里平铺

[展开全文]

2D

1.导入素材

2.修改背景--uji模式(右键新建UI-image,渲染模式Camera-渲染摄像机指定)

3.图片处理

4.面板背景图(Controlplane)

5.标题(title)-shadow(3,-3)

6.按钮(butter,outline,shadow) 

7.文字组件

[展开全文]

for(int i= bodyList.Count-2;i>=0;i--)

{
bodyList[i+1].localPosition= bodyList[i].

localPosition;
}

bodyList[0].localPosition = headPos;

[展开全文]

int  xlimit=21,;int ylimit=11;

int xoffset =7;

Transform FoodHolder;

GameObject food;

Sprite[]  footSprites;

int index = Random.Range(0,foodSprite.

length);

GameObject foood= Instantiate(food);

[展开全文]

public int step;

private int x;

private int y;//增量值

private Vector3 headPos;

void Move()//移动代码

if(Input.GetKey(KeyCode.w))

{

}

 

{

headPos = gomeObject.transform.

localPosition;
  gameObject.transform.localPositio

on = new Vector3()
}

 

InvokeRepeating重复调用(调用的方法,多久调用, )

[展开全文]

调用list.last(),表头需添加system.linq;

[展开全文]

1、设置一个ugui对象的角度,只能用四元素来设置,而不是一个vector3d,四元素是这样写

gameObject.transform.locatlRotaion = Quaternion .Euler(0,0,0) ;

 

[展开全文]

gameObejct.transform

如果是一个ugui对象通过这样来调用,它返回的是一个RectTransform对象。

移动一个ugui对象,直接调用localPosition赋值就行了,因为position是世界坐标,而ugui的canvas又被默认设置了一个scalse所放置,大概是0.000003,所以不能用世界坐标来移动

[展开全文]

授课教师

SiKi学院讲师

课程特色

图文(1)
视频(23)
下载资料(1)