2d游戏制作的笔记
save Layout 增加配置
Packges文件夹
插件
调整视野
鼠标中键 拉近拉远
鼠标右键 平移
Alt+鼠标左键 移动视角
Pivot/Center
当前物体中心和多个物体共同的中心
Local/Global
全局坐标
步移工具
工具:
1.Sprite Renderer
Order in Layer 可以调节物体的前后关系 值越大越在前面
不要乱改script文件名
Start()方法只会执行一次,类似于初始化
Update()方法会不断循环执行
Time.deltaTime 表示多久时间可以跑一次Loop 解决不同电脑运作速度不同
如果将属性设置为public或者加入[SerializeField] 就可以直接在Unity中调整
Rigidbody 2D 刚体
类似真实物体,可以自由落体
Collider 碰撞
给两个物体都增加Collider组件,可以碰撞在一起
is Trigger 不会碰撞在一起,只作为监测
判断是否撞在一起
private void OnCollisionEnter2D(Collision2D other) {
if(other.gameObject.tag == "Floor1") Debug.Log("撞到第一种阶梯");
else if(other.gameObject.tag=="Floor2")Debug.Log("撞到第二种阶梯");}
判断是否经过这个物体 需要给对应物体勾选 isTrigger
private void OnTriggerEnter2D(Collider2D other) {
if(other.gameObject.tag=="DeathLine"){
Debug.Log("你输了");
}
}
将你制作好的样板放入assets文件中,可以快速拖去重复相同的样板
overris 还可以修改所有样板
代码创建物体 ,并放入另一个物体下
Instantiate(FloorPrefabs[r],transform);
删除物件
Destroy(gameObject);
控制父物件去更新子物件
transform.parent.GetComponent().SpawnFloor();
让物件不断移动
transform.Translate(0,MoveSpeed*Time.deltaTime,0);
控制物件失去碰撞功能
currentFloor.GetComponent().enabled=false;
法线法向量
垂直接触面
让某个物体不显现
HpBar.transform.GetChild(i).gameObject.SetActive(false);//反之为true
使用UI库
using UnityEngine.UI;
人物水平翻转,转身
GetComponent().flipX=false;
给人物添加动画
component功能选择animator
创建animator controller
windows -> animation
创建动作clip
将贴图或者录制好的图片放入
调出animator 窗口
选择条件
bool anim.SetBool("run",true);
trigger anim.SetTrigger("hurt");
设置Layers权重值
选择箭头线
settings
可以将切换动画的时间全部设为零,√可以去掉
exit time 为动画闪烁的次数
添加声音
component -> audioSourse
取消勾选play on wake 一开始就播放
other.gameObject.GetComponent().Play();
游戏暂停
Time.timeScale=0f;
on click()
选择对象和方法
继续游戏
using UnityEngine.SceneManagement;
public void Replay()
{
Time.timeScale=1f;
SceneManager.LoadScene("SampleScene");
}