Animator Contorller:根据当前游戏对象的状态控制播放对应的游戏动画,也叫动画状态机
Animator Contorller:根据当前游戏对象的状态控制播放对应的游戏动画,也叫动画状态机
访问级别的用法
函数的调用,声明、签名、重载
变量的赋值顺序
触发器
触发检测
实战血瓶
各种运算符,访问组件、物体、怎么通过访问其他组件
属性内容
属性对对象的作用和意义为:限制来自外部的访问和修改
经典
Destroy(gameObject);
直接销毁即可
gameobject,就是脚本挂载的游戏对象,是 unity内置的
脚本里访问的组件都是该物体的组件
获得了luna的对象,即可以通过
对象名.object,获取这个对象的物体,进而销毁:Destroy(对象名.gameObject);
百分之八十的错误,控制台都能说的很清楚
collision 是露娜身上的一个组件,有一个可以获取的组件,就一定可以获取其他组件
输出的信息检测到的是 Boxcollider2d的组件,2d有很多内容,boxcollider是其中一种
获取对象的其中一个属性(分支),我们就可以通过这个分支,获取整个对象
对象名.GetComponene<对象类名>();
触发检测的必要条件
1. 都要有碰撞器
2. 其中一方有刚体(最好运动)
3. 其中一个boxcollider一定是触发器
(把boxCollider 下面的 is Trigger 勾选)
触发器是触发某些事情的机关(机关、事件、事情)吃血包会回血,触发boss战
很多业务逻辑需求都要用触发器
有触发器,脚本里才能有作用,接触一次,触发一次
unity脚本只要有函数,就自己帮你调用了,原理不用管,知道干嘛的就行(能开发引擎再说)
先后顺序的问题,可能会造成项目直接崩盘
2. 在代码里写的赋值顺序
先执行代码
1.在显示面板的赋值顺序
再执行显示面板
3. start方法的赋值顺序
再实行start
4. update方法的赋值顺序
update 一定是最后执行的
三个地方只在一个地方赋值,要么在最开始赋值、要么在检视面板里调,huo
返回值void只会执行代码,不会有返回值
可以给函数上返回值
函数签名(访问级别、返回值、名字、参数)
函数可以重载,只是参数不同,但是不可以有两个参数相同的函数。知道大概的函数是做什么的就可以,哈桑农户的重载是
定义了最大生命值
访问级别:所有类型和类型成员都具有可访问级别,用来判断是否可以允许我们访问某些成员变量和方法。可使用访问修饰符来指定生命类型或成员的可访问性
public公共的 可以外部访问,会显示到面板
private私有的 只用于内嵌类或成员的
protect保护的 只用当前类 或子类中
int 存整数的类型
float 存小数的类型
所有准备工作放到start(),告诉他初始是什么
c#默认的访问修饰符是private,不加也没问题,但还是加上比较好,加上之后更清晰,更容易理清
自定义方法
级别 + 类型 + 名称(参数)
名称尽量使用动词,首字母大写
unity 的物理系统,模拟现实的碰撞,受力
righidbody(刚体组件),使游戏物体可受力,重力,扭力等等。(刚体不发生碰撞检测,不运动会休眠的,所以只挂载在运动物体即可)
刚体也能发生角度旋转,改变组件constraints锁定组件
boxcollider 2D组件(碰撞器组件)
自己编写的代码和物理系统的代码有冲突,所以用物理系统的代码进行输出即可
静态方法是用 类名.方法名(参数),全局访问,不用实例
普通方法是对象名 . 方法名字
编辑体,
unity的组件是 unity开发的脚本,本质上和我们写的脚本是一样的
所以二者冲突,发生抖动
//设定一个box..2D的小狗变量,然后就可通过.把对应的组件里东西点出来
//BoxCollider2D dog = GetComponent<BoxCollider2D>();
//GetComponent是获取组件的意思,<>里填组件类型
//静态方法使用:类名. 方法名
//普通方法 / 变量方法:对象名. 方法名
静态方法就是和程序生命周期同生共死,随时使用的
1.访问unity中国官网unity.cn(unity.com是国际网站,不适合初学者)
2.点击下载unity;
3.下载Unity前先要下载一个Unity hub,这可以帮助你更好的管理项目,也可以帮助你更好的下载各种版本的Unity,Unity版本更新快,紧随潮流。
4.先点击下载hub,再弹出的页面登陆自己的unityID,如果没有,可以通过页面的下方点击注册,使用自己的手机号或电子邮箱进行注册。
5.注册好之后,右上角登陆账号,如果出现头像说明成功了,再次点击下载hub,打开文件安装目录,双击unity hub软件安装包,弹出界面后点击我同意,然后设置好安装目录,再点击安装就可以了,如果默认安装地址位置内存够的话,可以直接安装。
6.等待安装完毕后,桌面上会出现快捷图标,如果没有的话可以去软件根目录里找,双击打开hub,点击安装,安装2023.x型号中的版本,最好是2023.1.1。
7.安装成功即可。
collider2d组件中 有 Edit colliber,用来编辑碰撞体的大小
因为移动的时候总是z轴在旋转,所以
Rigidbody 2D → Constraints 锁死Z轴
发生碰撞的条件:必须都有碰撞器,且一方有刚体,最好是运动的一方,因为unity为了性能的优化,因刚体长时常不发生碰撞检测会休眠
上下抖动是因为刚体系统碰撞 和 代码 的冲突
所以直接控制刚体组件让他移动即可
添加刚体组件后,物体新增了重力
但是2d不需要重力
刚体组件:获得重力、接受外界的阻力和扭力、通过脚本或是物理引擎为游戏对象田间刚体组件
碰撞器:使游戏物体 具有 跟 挂载刚体组件 的 游戏物体 发生碰撞 能力 的组件
collide(不要忘记也)
物理系统,欸嘿。
《力学基础》
2d刚体组件,是unity中给2D物体模拟物理特性的组件
子体 通过 override 也可以修改母体
文件无法通过z撤回,引擎里的修改可以撤回,修改文件之后就无法撤回了
总结:
预制体很好用,是一个非常重要的概念
回顾
改2d游戏的渲染顺序,改变轴向,Edit
轴心点概念
精灵渲染的顺序点
预制体:unity 的特殊资源、是一个或者一系列组件的集合体,可以使用预制体实例化克隆体、后续可以对克隆体属性进行统一修改
即母体 和 字体的意思
把场景物体拖进project就变成预制体
把预制体反打包
右键 → prefabs → unpack compelete
面对走来走去的玩家和NPC,我们该如何去控制渲染顺序,
Edit → setting → Transparency Sort Mode改成 Custom Axis(然后弹出可设置参数)
分别代表根据 X\Y\Z渲染,只与正负号有关,与具体值无关
覆盖自然与否与轴心点相关,是根据轴心点计算的
上次遇到了不会显示的问题,怎么调顺序????
深度问题(z轴的值问题)不知道先渲染谁了?渲染决定层级顺序
解决的办法:绝对不是2d转3d,调整z轴来调整关系(虚晃一招)
层级,在SpriteRenderer组件中的Order in Layer词条
把个别建筑物fan