unity笔记

c#逻辑类:字段,属性,逻辑函数,方法
unity脚本:字段,方法

脚本生命周期

物理周期可以修改频率

初始阶段:

Awake唤醒:

  1. 执行时机:创建游戏对象->立即执行一次(早于Start)
  2. 作用:初始化

Start开始:

  1. 执行时机:创建游戏对象->脚本启用->才执行1次
  2. 作用:初始化

OnEnable当可用:
每当脚本对象启用时调用

物理阶段

游戏逻辑**:
FixedUpdate:
执行时机:每隔固定时间执行一次(时间可以修改)
适用性:适合对物体做物理操作(移动、旋转),不会受到渲染影响
渲染时间不固定(原因:每帧渲染量不同、机器性能不同)
Update:
执行时机:渲染帧执行,执行间隔不固定
适用性:处理游戏逻辑
LateUpdate:
用于跟随事件
场景渲染
OnBecameVisible当可见
Mesh Renderer在任何相机上可见时调用
OnBecameInvisible当不可见
Mesh Renderer在任何相机上不可见时调用
输入事件
在这里插入图片描述

结束阶段:
OnDisable当不可用:
对象不可用时调用
OnDestroy当销毁
脚本或游戏对象被销毁时被调用
OnApplication当程序结束:
应用程序退出时被调用

debug

源代码
用Reshapeer插件后ctrl+b就能看源代码
文件路径Library——ScriptAssemblies反编译用ILSPY观看源代码
注:VS2019 的扩展管理里可以下载最新的ILspy
新版本在temp->bin->Debug里
Debug
简单:

  1. 控制台调试:
    Debug.Log(变量);
    或print(变量);

  2. 定义共有变量,程序运行后在检测面板查看数据

复杂:
在这里插入图片描述

常见API:Component、Transform、GameObject、Object、Time
Component:
GetComponentInChildren:获取后代物体的指定类型组件(从自身开始)
GetComponentInParent:获取先辈物体的指定类型组件(从自身开始)
总结:component类提供了查找(在当前物体、后代、先辈)组件的功能
Transform:
this.transfrom.position 物体相对于世界坐标系原点的位置
this.transfrom.localposition物体相对于父物体轴心点的位置
this.transfrom.localScale物体相对于父物体的缩放比例
this.transfrom.lossyScale物体与模型的缩放比例(自身缩放比例*父物体缩放比例)
this.transfrom.Translate(0,0,1)向自身坐标系z轴移动1米
this.transfrom.Translate(0,0,1,Space.World)向世界坐标系z轴移动1米
this.transfrom.Rotate(0,0,1,Space.World)(自身/世界)旋转
this.transfrom.RotateAround(Vector.zero,Vector3.up/forward/…,1)
围绕旋转 点 轴 角度
TransformrootTF=this.transform.root; 获取根物体变换组件
Transform parentTF=this.transform.parent; 获取父物体变换组件
this.transform.SetParent(tf) 设置父物体
this.transform.Find(“子物体名称”)根据名称获取子物体(子物体/子物体)孙子适用于只有一个,独苗传递
总结:Transform类提供了查找(父、根、子)变换组件;改变位置大小、角度的功能
this.gameObject.activeInHiearchy 在场景中物体激活状态(物体实际激活状态)
this.gameObject.activeSelf物体自身激活状态(对号)
this.gameObject.SetActive()设置物体启动/禁用(true/false)
GameObject[]allEnemy =GameObject.FindGameObjectsWithTag(“Enemy”) 获取使用该标签的物体
GameObject.Find在场景中根据名称查找对象(太强大,耗内存,不建议使用)
Object.FindObjectOfType();根据类型查找对象
FindObjectType();根据类型查找对象
Object.Destory 销毁对象
Object.Instantiate 克隆

Time类
重要语句:在update中调节
旋转速度每帧消耗时间,可以保证旋转速度不受机器性能,以及渲染影响
this.transform.Rotate(0,1
Time.deltaTime,0)
每帧消耗时间
每帧渲染执行1次,旋转1度,1秒 旋转?度(规律:帧多,1秒旋转速度快,希望1帧旋转量小,帧少则反之。)
在FixUpdate(物理更新)中固定,0.02秒执行一次,与渲染无关,受TimeScale(调节速度)影响
Update(渲染更新)在渲染场景时执行,不受TimeScale(调节速度)影响
游戏暂停,个别物体不受影响
seppd*unscaledDeltaTime
在这里插入图片描述
倒计时每秒变化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Input类:获取鼠标输入
在这里插入图片描述
在这里插入图片描述
按两个键用||
在这里插入图片描述
玩家自定义按键:
设置虚拟按键,绑定真实按键
可用增加虚拟按钮来增加按键

三维数学

向量
欧拉角:没有大小方向,属于向量类型,不是向量,xyz表示各个轴向上的旋转角度
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
四元数:防止方向节锁死
在这里插入图片描述

在这里插入图片描述

坐标系

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述刚体,碰撞,触发
刚体属性:
碰撞条件:两者具有碰撞组件,
碰撞阶段:在这里插入图片描述

触发(is Trigger):检测到,无碰撞效果
触发条件:在这里插入图片描述
触发阶段:
在这里插入图片描述
知道具体位置只能用碰撞
在这里插入图片描述
convex:勾选降低渲染量
利用IInvoke延迟调用
在这里插入图片描述
VS出现杂项文件:资源管理器解决方案显示所有文件刷新/改名

传送条件
物体有脚本高度传送
在这里插入图片描述

在这里插入图片描述

show和handle勾选
在这里插入图片描述
地形形状有妨碍可禁用mesh renennder
检测玩家行为:
singglegun:传统方法,获取索引,update检测
事件回调(不需要检测按没按):注册事件

传送禁用:利用代码控制忽略层

UNUI

操作方式:快捷键第五个,选中2d,改变width height
在这里插入图片描述
在这里插入图片描述
根据需求选择摄像机模式,一般用覆盖模式

UI与场景共存:(地图)
2d摄像机模式
ui camera:
层只看UI
在这里插入图片描述

主摄像机:
层不看UI
3d物体进入UI,改变为UI层

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值