想在毕业前整出一个东方二创游戏,于是开了坑。

视频参考

https://www.bilibili.com/video/BV1jK411V7V7?p=4&spm_id_from=pageDriver&vd_source=aca2ef475df4152d76052947baf25a61

c#相关

匿名函数

    canvasGroup.DOFade(0, fade_time).onComplete = ()=>{
        gameObject.SetActive(false);
    };

和js差不多,可以用这种方式构造一个匿名函数

unity使用

组件

physics2D

2D游戏的物理效果

RigidBody2D

2d刚体,加上后会有重力效果

Box Collider 2D

2D的碰撞box,可以设置物体的碰撞体积,用编辑碰撞器来设置体积

Rendering

Sprite Renderer

一般用来放置图像

miscellaneous

Animator

动画自动机,会在asset里面创建一个动画文件一个状态机。动画文件可以进行编辑动画,状态机是不同动画状态转换

image-20231120233002000

笔记记录

  • 脚本的public声明的变量会出现在检查器里,可以进行动态修改
  • 实现这种鸟的飞行,由于有RigidBody2D,如果想要实现鸟头上下摆动会产生力,导致鸟乱飞而不是上下可控,所以不能直接在鸟本身进行修改。需要开一个子bird来专门放置图像,控制图像的上下摆动,而不影响刚体

image-20231120230953084

  • 可以通过在状态机处加入参数的方式来改变当前的状态

image-20231120235614821

  • 像这种地面的元素,它的图片放在子对象里面,然后它的物理效果放在外层。

image-20240417223301474

时刻注意,debug了很久才发现是这个原因

报错记录

the variable canvasGroup has not been assigned

忘记给canvasGroup传入画布了

image-20231123223729363