Jtro的开发杂记
1.
当高版本(unity2018)的项目迁移到低版本(unity2017)中的时候,需要将项目中的“Packages”文件夹中的json文件删除并让它重新生成。
2.
2d图片的位置跟随3d物体的位置:
Update中写:
Images.rectTransform.position = Camera.main.WorldToScreenPoint(pointImage.position);
3.
有时候unity打开奔溃,将包中的library文件夹删除重新生成即可。
4.
webgl打包的时候,在playersetting中 compression format选择broli模式
与enable exceptions中选择none,这样打出来的包占用空间会小。
5.
在Unity中,那些Shader中被设置为“Geometry” 队列的对象总是从前往后绘制的,而其他固定队列(如“Transparent”“Overla”等)的物体,则都是从后往前绘制的。这意味这,我们可以尽量把物体的队列设置为“Geometry” 。
6.
天空盒旋转:
在任意一个脚本中加入如下代码:
float num;
private void Update()
{
num = RenderSettings.skybox.GetFloat("_Rotation");
RenderSettings.skybox.SetFloat("_Rotation", num + 0.005f);
}
7.
使用canvas上的自适应排版 canvas上的canvas scaler中UI scaleMode选择scale with screen size ,referencce resolution 选择当前的分辨率,例如1920*1080,screen match mode 选择expand。
8.
Text组件中如果text中的字是变化的,添加contentsize fitter组件,将组件中的2个选项都选为preferred size。可以根据字数改变text的组件大小
9.
在编辑视口中,选择将要编辑的物体,按下V键,然后可以选择中物体的临时中心点,这个中心点可以移动旋转操作。
10.
你在photoshop中把图片转换为web所用,可以看到压缩选项。这样的压缩实际上是去掉了原图片中的很多色彩信息,这样会使图片占用的空间变得更小
11.
Dotween中让一个数字从一个值变化到另一个值:
声明myFloat
DOTween.To(() => myFloat, x => myFloat = x, 5.5f, 1);
在1秒中,从默认的值变化到5.5
12.
当你的显卡是N卡,而且装的驱动不是gameready ,那么你的unity很可能开启之后会假死,这个时候你需要将显卡驱动控制面板打开,并且将驱动换到gameready就可以了。
13.
当动画师给你的动画文件你看到的效果和动画师调的效果不一致时,试试点击模型到inspector面板中的animation中的anim.compression中选择Optimal选项
14.
如果想在update中运行一段代码的时候,你不必在update中写那么一大段的代码,
使用委托
private Action prgCB = null;
void Start ()
{
prgCB = () => {
//do something...
};
}
void Update ()
{
prgCB ();
}
15.
playerprabs使用方法: https://www.cnblogs.com/planezhong/p/10061977.html
16.
字符串“”与null的区别,虽然都是代表没有任何东西,但是“”表示在内存中有这个字符串,而null表示内存中没有为此字符串分配空间。
17.
字符串“”与null的区别,虽然都是代表没有任何东西,但是“”表示在内存中有这个字符串,而null表示内存中没有为此字符串分配空间。
18.
excel的开发工具:在文件->选项->自定义功能->(主选项卡)开发工具
19.
如果有一天,当你打开unity安装了VS,然后发现你使用vs的时候在输入Ontrigger这类函数的时候发现没有了智能提示,你需要重新在unity中指定unity打开脚本的方式。
20.初始化类中的参数
比如你的类:
public class A
{
string Str = "";
}
一般的引用会是这样:
首先是new一个出来
A a = new A();
a.Str = "Hello";
也可以写成这样
A a = new A{
Str = "Hello"//注意,这里不能加分号,如果多的话用逗号隔开,因为一个分号代表一行代码
};