读一读

使用多个单例模式的Manager来管理不同的模块。

例如LevelManager,用来管理关卡的加载逻辑,提炼方法为上一关和下一关等,关数的顺序使用配置表来确定,此时删除关卡或则改名字等或则修改关卡的连续都可以直接通过修改配置完成。

PoolManager,管理多种SpawnPool类型对象池,SpawnPool管理多个这个类型的PrefabPool,PrefabPool单一的对它的Prefab进行管理。

通过这些单例模式的管理器,任何地方都可以通过这个实例来实现交互操作。


使用Ctrl+Shift开启碰撞模式,拖动黄色小方框,到光标所指的对象上,两碰撞体会相对齐。例如,用来叠放东西,放置东西到一个平面上等。


选择物体后,使用移动工具,按住V会使变换工具切换为顶点吸附模式,这个时候可以移动鼠标到合适的点,点击选择拖动到合适的地方吸附。可以用Ctrl+Shift+V一直开启顶点吸附模式,按Ctrl+V关闭。


捕获.PNG

第一个设置中心,Center为Unity根据周边近似计算出来的,Pivot是自定义中心的(UI),点击切换为Pivot后就可以点击中心移动到别的地方了。

第二个为参考坐标,Local是使工具轴显示为本地坐标的,切换为Global后操作轴就是世界坐标了。


//新建一个文件,声明委托类型
public delegate float GraphFunction(float x,float t);

//新建一个文件,声明枚举类型
public enum GraphFunctionName{
	Sine,
	MultiSine
}

//主要使用
public GraphFunctionName Name;//提供给外面选择
static GraphFunction[] functions = {
	SineFunction,//和枚举一一对上
	MultiSineFunction
};

//调用,通过委托数组和枚举取出相应的索引方法
functions [(int)Name](pos.x,Time.time);

Unity3d支持在点击了播放按钮后,去直接修改代码。然后Unity会暂停执行,暂时保存当前的运行状态,再去编译你的代码,然后重新加载你的游戏状态,继续运行。重新编译时,并不是什么东西都会保留,但是图形是会保留的。


当你在编辑器中用SceneManager重新加载场景时,会导致场景的渲染有问题,灯光颜色等混乱,颜色偏暗。(打包之后是不会的)

解决办法是打开Window-Lighting-Setting选择Object maps,取消勾选Auto Generate,手动Generate一下。


transform.position = new Vector3(point.x,1.5f,point.z);//目标位置
transform.rotation = Quaternion.identity;
rig.Sleep ();
rig.useGravity = false;


rig为Rigidbody组件的引用


[Range(10,100)]
public int Num = 50;

这个特性会在Inspector中限制变量的赋值在10-100之间,显示为一个滑动条

但是这个特性不会真正限制值的大小,程序中可以随意给予超过范围的值;


物体在Inspector调节Transform属性都是依照自身的轴向的,如果当你需要排放一个规律型的物体,需要使用多个单物体。例如摆放一个时钟的点数时,你如果单单的赋值点数物体,然后旋转它,此时你是需要手动的去调节位置的。但是如果你参考一个时钟的中心点,一个父物体,旋转父物体,子物体的角度和位置都会得到很好的改变。快速的摆好位置后,再将这些点数拉出来,Unity会自动计算,保持它在世界坐标的位置的本地位置(这不就摆好了!)。删除辅助的父物体们。

QQ图片20180103140623.png