读一读

Directional Light  平行光(太阳)

Point Light 点光源(有范围)

Spot Light  光束(聚光灯)

Area Light   区域光(用于烘焙)

除了平行光,其他光源如果要用阴影的话要调成延迟渲染


右键+WSAD 前后左右漫游场景

QE 上下

Move to view 移动到视图中心

Align With View 移动物体到观察位置

Align View to Selected 以这物体为观察位置


W移动

E旋转

R缩放

T矩形


Snap Settings 固定位移移动旋转缩放物体

或ctrl+移动(w)等,定量移动


可以查看

Edit->ProjectSettings->Physics(2D)中的Layer矩阵

看看是不是这里的问题


定义简单序列化类或者结构

[Serializable]
public class MyClass
{
    public int level;
    public float timeElapsed;
    public string playerName;
}


用工具类JsonUtility,

ToJson(序列化类)  //转化为json字符串

FromJson(json)   //json转化为类

FromJsonOverwrite(json,myclass) //重写类


建议不要使用DontDestoryOnLoad去维持你想一直要使用的游戏管理脚本GameObject,你可以创建一个管理场景,然后用SceneManager.LoadScene(, LoadSceneMode.Additive)和SceneManager.UnloadScene去管理你的游戏过程。

就是,你可以创建一个起始的场景Main,里面全是管理器的初始化的单例,然后一直维持这个场景的存在,通过额外或则卸载场景的方式去实现游戏关卡。也就是每次都是两个场景的混合,Main场景和你的关卡场景。Main场景还可以存放一些公共的资源。


Assets : 存放项目的所有资源,直接显示在Project中。

Editor : 存放扩展Unity功能的脚本,在这个文件夹里继承MonoBehaviour的脚本不能指定给GameObject,也就是不参与游戏运行时。一个项目可以有多个Editor文件,但是影响执行的顺序。

Editor Default Resources : 这个文件夹必须直接放在Assets目录下,存放Unity扩展编辑器的资源文件,通过EditorGUIUtility.Load加载

Gizmos : 存放一些用于标志Scene中的GameObject和position的小图片icon,用Gizmos.DrawIcon加载。

Plugins : 用于扩展Unity的特性,一般存放c/c++  dll文件等外部脚本。跟Editor一样,可以多个,但有执行顺序。

Resources : 放置需要脚本来加载的资源文件,可以有多个Resources文件夹,无论放在哪里。通过Resources.Load方法加载。

Standard Assets : 导入标准资源包时存放的文件夹。

StreamingAssets : 存放不需要一些需要保持原有格式的文件(不需要unity的处理)

Hidden Assets :

During the import process Unity completely ignores the following files and folders in the Assets folder (or a sub-folder within it):

Hidden folders.

Files and folders which start with ‘.’.

Files and folders which end with ‘~’.

Files and folders named ‘cvs’.

Files which have ‘tmp’ extension.

This is used to prevent importing special and temporary files created by operating system or other applications.


在新的场景关卡加载完成后,信息OnLevelWasLoaded()将会发送到所有活跃的GameObject。

就是场景加载完成后,每个Active的GamaObject的每个MonoBehaviur脚本都会调用OnLevelWasLoaded方法。

作用的话可以用来优化资源的动态加载,以优化场景切换的时间,可以在场景加载完后,动态逐渐加载场景的资源,拼接组成验证。


DontDestroyOnLoad(go);//GamaObject go一定是在层次面板中最root的物体

这个代码声明go,在加载下一个关卡时不会销毁掉,一般用于保持音乐继续播放,维持游戏控制代码和状态等。