Unity
未读光源组件面板控制Type光源类型
Spot(聚光灯)
Range(发光范围)
Spot Angle(光锥角度)
Direction(方向光)
Point(点光源)
Area(面光源)
Color颜色
Mode光源模式
Realtime
实时光源
每帧实时计算,效果好,但是性能消耗大
Baked
烘焙光源
事先计算好,无法动态变化
Mixed
混合光源
预先计算+实时运算
Intensity光源亮度
Indirect Multiplier改变间接光的强度低于1,每次反弹会使光更暗大于1,每次反弹会使光更亮
Shadow Type
NoShadows——关闭阴影
HardShadows——生硬阴影
SoftShadows——柔和阴影
RealtimeShadowsStrength——阴影暗度0~1,越大越黑Resolution——阴影贴图渲染分辨率,越高越逼真,消耗越高Bias——阴影推离光源距离Normal Bias——阴影投射面沿法线收缩距离Near Panel——渲染阴影的近裁剪面
Cookie投影遮罩
Cookie SizeDraw Halo球形光环开关
...
Unity
未读最小单位GameObject成员变量
123456789101112print(this.gameObject.name);this.gameObject.name = "带土";//是否激活print(this.gameObject.activeSelf);//是否静态print(this.gameObject.isStatic);//层级print(this.gameObject.layer);//标签print(this.gameObject.tag);//transformprint(this.gameObject.transform.position);
GameObject中的静态方法只要得到了一个GameObject对象,就可以得到它身上的所有脚本信息。
1234//创建自带几何体GameObject obj = GameObject.CreatePrimitive(PrimitiveType.Cube);obj.name = "11";obj.GetComponent();
查找对象123456789101112//通过对象名 ...
Unity
未读脚本基本规则
不在Vs中创建
可以放在Assets文件夹的任何位置中(建议同一文件夹)
类名和文件名必须一致,不然不能挂载
建议不要使用中文名命名
没有特殊要求不用管命名空间
创建的脚本默认继承MonoBehavior
MonoBehavior基类:
创建的脚本默认都继承了MonoBehavior,只有这样才能挂载在对象上
继承MonoBehavior的脚本不能new只能挂
继承了MonoBehavior的脚本不要去写构造函数,因为我们不会去new它,写构造函数没有意义
继承了MonoBehavior的脚本可以在一个对象上挂多个脚本(如果没有加DisallowMultipleComponent特性)
继承了MonoBehavior的类也可以再次被继承,遵循面向对象继承多态的规则
不继承MonoBehavior的类:
不继承MonoBehavior的类不能挂载到GameObject上
不继承MonoBehavior的类想怎么写就怎么写,如果要使用需要自己new
不继承MonoBehavior的类一般是单例模式(用于管理模块)或者数据结构类(用于存储数据)
不继承MonoBehav ...
Unity
未读Unity中的反射机制的运用场景中对象的本质是Unity引擎提供给我们的作为场景中的所有对象的根本,在游戏场景中出现的一个对象不管是图片、模型、音效、摄像机等等都是依附在GameObject对象上的。
Transform是一个剧本,GameObject是一个演员,实际就是把一个Transform脚本和GameObject对象相关联。
默认刚创建的GameObject只有一个Transform脚本。其他的都需要我们手动去添加。
如何利用反射机制创建脚本在Project中的Assets中创建一个c#脚本,然后定义好一些变量后,把该脚本拖动到我们需要添加的GameObject上,就能在Inspector窗口看到对应的脚本添加
游戏场景游戏场景的保存Ctrl + sCtrl + Shift + s;
游戏场景的新建左上角新建
游戏场景的叠加把其中一个场景直接拖动到另一个场景的Hierarchy窗口里。一般不会进行两个场景的叠加,在某些时候,可能会使用到另一个场景的东西的时候,可以把另一个场景的东西复制过来,但在一般的情况下不会使用这种做法。
游戏场景的本质游戏场景文件,后缀为.unity就是一 ...
Unity
未读Scene和Hierarchy窗口窗口布局右上角Layout选项可以帮助我们快速布局,这边推荐新手使用2by3布局模式,可以同时看到scene和game窗口,后期想要自己布局的话,拖动完成布局之后,点击Save Layout就可以了。
Scene(场景窗口)场景窗口和层级窗口是息息相关的,层级窗口中看到的内容就是场景窗口中显示的对象。渲染模式;2D、3D视图切换;光源、音效、特效开启;辅助线显示;辅助功能;搜索;场景轴向
操作物体工具栏快捷键:
Q:平移
W:移动
E:旋转
R:缩放
T:2D
Y:综合
鼠标快捷键讲解:
鼠标左键:
单击:选中单个物体
框选:选中多个物体
Ctrl + 单击:多选物体
长按ALT + 鼠标左键 + 移动鼠标:相对观察口中心旋转
鼠标右键:
移动鼠标:旋转视口
按下 + WASD:漫游场景
按下 + WASD + Shift:加速漫游场景
长按ALT + 鼠标右键 + 移动鼠标:相对屏幕中心拉远拉近
鼠标中键:
滚动:对屏幕中心拉远拉近
中键按下 + 移动鼠标:平移观察视口
长按ALT + 滚动中键:朝哪就往哪拉近拉远
Hierarc ...
Unity
未读工程文件夹工程文件夹中有
1、Assets:工程资源文件夹(美术资源,脚本等等)
2、Library:库文件(Unity自动生成管理)
3、Logs:日志文件夹,记录特殊信息(Unity自动生成管理)
4、obj:编译产生的中间文件(Unity自动生成管理)
5、Packages:包配置信息(Unity自动生成管理)
6、ProjectSettings:工程设置信息(Unity自动生成管理)
创建工程
2D (Built-In Render Pipeline,内置渲染管线 2D)
适用场景:适用于开发 2D 游戏,如平台跳跃游戏、休闲益智游戏等,以及对 2D 图形表现有需求的应用程序。
渲染效果:能够满足基本的 2D 图形渲染需求,支持简单的精灵渲染、动画帧播放等,提供较为基础的 2D 视觉呈现。
性能消耗:相对较低,因为不涉及复杂的 3D 计算和处理,对于硬件性能要求不高,在移动设备等性能有限的平台上也能较为流畅地运行。
3D (Built-In Render Pipeline,内置渲染管线 3D)
适用场景:用于开发 3D 游戏或应用程序,像角色扮演游戏(RPG)、第一人称 ...
反射程序集程序集是由编译器编译得到的,供进一步编译执行的中间产物,在WINDOW系统中,它一般表现为后缀为.dil(库文件)或者是.exe(可执行文件)的格式。简单来说就是我们写的代码集合,我们写的所有代码都会被翻译器翻译为一个代码集供人使用,比如一个代码库或者一个可执行文件。
元数据元数据就是描述数据的数据这个概念不仅仅用于程序上,在别的领域也有使用。简单来说,程序中的类,类中的函数,函数中的变量就是元数据,有关程序以及类型的数据被称为元数据。它们保存在程序集中
反射程序正在运行时,可以查看其他程序集或者自身的元数据,一个运行的程序产肯本身或者其他程序的元数据行为就是反射。简单来说就是,在程序运行时,通过反射可以得到其他程序集和或者自己程序集代码的各种信息,实例化它们,执行它们,操作它们。
反射的作用因为反射可以在程序编译后获得信息,所以它提高了程序的拓展性和灵活性。
程序运行时得到所有元数据,包括元数据的特征
程序运行时,实例化对象,操作对象
程序运行时创建新对象,用这些对象执行任务。
语法Type12345678910111213141516171819202122class ...
委托和事件委托委托是什么委托是函数的容器,可以理解为表示函数的变量类型,用来储存、传递函数。委托的本质是一个类,用来定义函数的类型,不同的函数必须对应和各自格式一致的委托。
语法123访问修饰符默认不写是publicpublic delegate 返回值 委托名(参数列表);一般写在namespace语句块中
定义123delegate void MyFun();public delegate int MyFun2(int x);//定义了一个规则,并没有使用。//委托规则的声明不允许重名
使用自定义委托委托变量是函数的容器
12345678910111213141516MyFun f = new MyFun(Fun);//只能存储f.Invoke();//执行函数MyFun f2 = Fun;f2();MyFun f3 = Fun2;int x = f3(114514);static void Fun(){ }static int Fun2(int x){ return x;}
委托常用:作为类成员;作为函数的参数
123456789101 ...
本篇章内容知识偏多,因此分三次上传。
简单数据结构类ArrayListArrayList的本质ArrayList是一个C#为我们1封装好的的类,本质是一个object类型的数组,ArrayList类帮助我们实现很多方法,比如数组的删减查改。
申明12using System.CollectionsArrayList array = new ArrayList();
增删查改123456789101112131415161718array.Add(1);//增array.AddRange(array2);//范围增加(批量增加1)array.Remove(1);//从头找,找到删array.Insert(1,"1234567");///插入array.RemoveAt(2)//删除某一位置的元素array.Clear();//清空arrary[0];//表示第几个元素if(array.Contains("bababoi")){ //判断有无元素,有则进入,无则不进入}int idx;idx = array.IndexOf(tr ...
面向对象编程概念面向过程编程是一种以过程为中心的编程思想。
面向对象编程是一种对现实世界理解和抽象的编程方式,把相关的数据和方法组织成一个整体来看待,从更高层次来进行程序开发。更贴近事物的自然运行模式。
用通俗易懂的大白话说就是万物皆为对象:用程序来抽象形容对象,用面向对象的思想来编程
为什么要学习面向对象编程
提高代码复用率
提高开发效率
提高程序可拓展性
清晰的逻辑关系
面向对象三大特征学习 类 (class)
封装 + 继承 + 多态
封装:用程序语言来形容对象。
继承:复用封装对象的代码;儿子继承父亲,复用现成代码
多态;同样行为的不同表现,儿子继承父亲的基因但是有不同的行为表现。
面向对象七大原则开闭原则、依赖倒转原则、里氏替换原则、单一职责原则、接口隔离原则、合成复用原则、迪米特法则。
面向对象——封装类和对象什么是类具有相同特征,具有相同行为,一类事物的抽象,类是对象的模板,关键词:class
声明类一般申明再namespace语句块里。
12345678910class xxx{ //特征——成员变量 //行为——成员方法 //保护特征——成员属性 // ...












