从吃豆人小游戏中我学到了什么()

花了两天时间做了个吃豆人小游戏

从吃豆人小游戏中我学到了什么()
文章图片
image.png 在做这个游戏的过程中我学到了什么呢?
1.Collider 暂时用到就是Box Collider 和Circle Collider 如果要检测碰撞就必须挂Collider组件
Collider下面有个属性 Is Trigger 如果勾选则代表物体可以穿过 不会发生碰撞 不勾选则会发生碰撞不会穿过
碰撞触发的方法是
void OnTriggerEnter2D(Collider2D other)
2.pixels per unity :每单位多少像素
Pivot:已哪里为原点
从吃豆人小游戏中我学到了什么()
文章图片
image.png

3. 从吃豆人小游戏中我学到了什么()
文章图片
image.png 按住Ctrl在移动物体的时候 物体移动的的是每一个单位增加 便于计算
4.Sprite的渲染顺序
Order in Layer的数越大 就越后画 在面板最上面

从吃豆人小游戏中我学到了什么()
文章图片
image.png 5.规范代码格式 Ctrl+Shift+K+F
6.锁住一个物体的属性界面Ispector 方便拖动一些东西
从吃豆人小游戏中我学到了什么()
文章图片
image.png 7.防止数组越界的很骚的写法
index = (index + 1) % wayPoints.Length;
一旦到达数组边界就又返回到起始位置
wayPoint是这个数组
index是数组的下标
8.物体从一个点移动到另一个点 很平滑的移动
Vector2 temp = Vector2.MoveTowards(transform.position, wayPoints[index].position, speed);

GetComponent().MovePosition(temp);

speed指从current到target移动的途中速度
9.Random.range
Random.range(float,float)
左闭右开
Random.Range(int ,int)
左闭右闭
10.动态数组的加减注意问题 注意后面如果数据remove掉 数组count就会减少 很容易出错
int tempCount = rawIndex.Count;
for (int i = 0; i < tempCount; i++)
{
int tempIndex = Random.Range(0, rawIndex.Count);
usingIndex.Add(rawIndex[tempIndex]);
rawIndex.Remove(rawIndex[tempIndex]);
}
11.GameObject.Find():根据物体名称找到这个物体
12.获得所有子物体 foreach遍历
foreach (Transform t in go.transform)
{
wayPoints.Add(t.position);
}
13.简单单例的写法

从吃豆人小游戏中我学到了什么()
文章图片
image.png 14 unity自带的分割图片 在一张有好多小图的大图上分割一个个小图片

从吃豆人小游戏中我学到了什么()
文章图片
image.png 15.帧动画的制作
当我们把几张相似的图片拖到Hiercrhy中时 unity会自动让我们建一个anmimation 当我们建好一个animation后 会自动生成对应的animator 也就是动画状态机 控制动画怎么播放用的

从吃豆人小游戏中我学到了什么()
文章图片
image.png Entry是入口 就是默认的是哪个动画 左边可以设置参数 比如 x ,y 点击连接的线 右边Conditions约束每个动画是在什么条件下播放 我们只要在代码中控制参数的变化 动画状态机会自动根据参数播放我们想要的动画

从吃豆人小游戏中我学到了什么()
文章图片
image.png 16.unity中的协程

从吃豆人小游戏中我学到了什么()
文章图片
image.png
【从吃豆人小游戏中我学到了什么()】在方法前面加关键字IEnumerator
调用协程 StartCoroutine(方法名);
yield return new WaitForSeconds(4f); 暂停4秒 还是没太明白 协城不是开辟新的线程 还是在主线程
github地址:https://github.com/DreamingLuo/PacMan

    推荐阅读