从吃豆人小游戏中我学到了什么()
花了两天时间做了个吃豆人小游戏
文章图片
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
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- 一个人的碎碎念
- 我从来不做坏事
- 从蓦然回首到花开在眼前,都是为了更好的明天。
- 西湖游
- 改变自己,先从自我反思开始
- leetcode|leetcode 92. 反转链表 II
- 从我的第一张健身卡谈传统健身房
- 自媒体形势分析
- 操作系统|[译]从内部了解现代浏览器(1)