04 2022 档案
摘要:寻路导航 1. 简单的寻路 先搭建出类似下面的结构 将你想作为障碍的物体放入一个空物体中 进入空物体点击Static,仅勾选 Navigation Static 即可 依次点击 Window->AI->Navigation,出现如下面板 默认设置,点击烘培bake 蓝色区域为可以通行的区域 红色物体
阅读全文
摘要:音乐模块 检测音效是否在播放,没有播放就Destroy 需要利用到,MonoMgr执行Uptate 完整代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngin
阅读全文
摘要:InputMgr 利用到事件中心 测试代码 添加Update监听 开关 代码汇总 using System.Collections; using System.Collections.Generic; using UnityEngine; public class InputMgr : Single
阅读全文
摘要:资源加载模块 异步加载 委托和lambda表达式 协程 泛型 资源加载类 代码 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.Events; publi
阅读全文
摘要:场景切换模块 需要用到以下: 场景异步加载 协程:异步加载 委托 简单用法 头文件:using UnityEngine.SceneManagement; 直接调用 ↓ SceneManager.LoadScene("Scene2"); 协程调用 开启协程需要继承MonoBehaviour 场景切换类
阅读全文
摘要:旧动画系统 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Move : MonoBehaviour { // Start is called before the
阅读全文
摘要:公共模块 如果有很多类使用Update()函数,会导致性能浪费 如果函数统一在一个Update()中执行 代码 上述,需要将脚本挂载到物体上, 故新建了一个管理类MonoMgr Mgr另外的作用 可以提供给外部添加协程的方法 代码汇总 MonoController using System.Coll
阅读全文
摘要:耦合性低,统一管理 代码 注册事件 当对象被销毁后,需要删除已经注册的事件 触发事件 移除事件 切换场景时需要清空事件 当我们要给事件添加参数时 注册事件的类 优化 利用接口继承优化,避免装箱拆箱 (引用类型和值类型之间的转换) 完整代码(最终形态) using System.Collections
阅读全文
摘要:当内存占满了,GC会自动清理内存 优化方法:对象池 Invoke("Push",1);//延迟一秒时间调用 高级缓存池 小池子 大池子
阅读全文
摘要:单例模式 代码 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Singleton<T> where T : new ()//泛型约束 必须有无参的构造函数 { /
阅读全文
摘要:打开Lighting面板 将天空盒改为别墅 图片转化为Cube 设置一个材质球
阅读全文
摘要:发射光源类型 光照参数介绍 让摄像头看到Flare 耀斑 改变影子
阅读全文
摘要:脚本控制移动 public float moveSpeed =5f; public float roundSpeed=120f; void Update() { this.transform.Translate(Input.GetAxis("Vertical")*Vector3.forward*mo
阅读全文
摘要:2D游戏一般选择填充,减少性能浪费,也一般选择正交模式 Fiel of View 类似望远镜的效果 Clipping Planes 摄像机开始摄像和结束,两个平面的位置 Depth 决定摄像头的优先级 两个画面的叠加 两个摄像机深度不同 将深度高的摄像机调为(Depth only) 这样深度较低的摄
阅读全文
摘要:会受到缩放的影响 用的比较多的是 本地坐标转换为世界坐标,比如在自己周围释放物体 当物体发生旋转,方向会发生变化
阅读全文
摘要:摄像头跟随 防止计算机一直进行差值计算,影响计算机性能 加入插值函数能够让摄像机灵动起来 脚本 void LateUpdate() { tragetPosition = follow.position+Vector3.up*distanceUp-follow.forward*distanceAway
阅读全文
摘要:点乘 A·B 判断敌人在前方还是后方 调试画线 画线段 前两个参数 分别是 起点 终点 画射线 前两个参数 分别是 起点 方向 Debug.DrawLine(this.transform.position,this.transform.position+ this.transform.forward
阅读全文
摘要:2d游戏制作的笔记 save Layout 增加配置 Packges文件夹 插件 调整视野 鼠标中键 拉近拉远 鼠标右键 平移 Alt+鼠标左键 移动视角 Pivot/Center 当前物体中心和多个物体共同的中心 Local/Global 全局坐标 步移工具 工具: 1.Sprite Render
阅读全文
摘要:同版本编辑器在不同VS版本下会报错问题解决 解决方法 报错情况 解决方法 打开Edit >Preferences >External Tools然后点击:Regenerate project files
阅读全文
摘要:获取对象 public CharacterController cc; cc=gameObject.GetComponent<CharacterController>(); if(Input.GetKey(KeyCode.RightArrow)) cc.Move(Vector3.right*Time
阅读全文
摘要:射线 Ray ray= Camera.main.ScreenPointToRay(Input.mousePosition);//获得鼠标射向的射线 RaycastHit hit;//射线碰撞物体 if(Physics.Raycast(ray,out hit)){ Debug.DrawLine(ray
阅读全文