Unity
Unity相关
Ha啤酒来大杯的
不会就问我,问了也不一定会
展开
-
资源基础学习记录(一) AssetBundles
基础相关1、什么是AssetBundleAssetBundle包含一个Header和一个数据段Header在构建AssetBundle时创建。包含识别符,压缩标志,清单(由名字为索引的查找表格)一般为平衡树查找或者红黑树查找。会随着资产数量增加而增加构建AssetBundle时间成本。2、当资源A没有被分配到ab包中,任何引用资源A的ab包都将会产生一份资源A的拷贝,这会使包体变大、产生冗余。并且ab包都被加载到内存中里。将会有多份资源A3、图集中Sprite分布在多个ab包中,那么每个ab包中都原创 2021-07-05 09:38:16 · 360 阅读 · 0 评论 -
UGUI练习 - 无限滚动列表、数据模拟操作
项目地址效果图思路判断最上方和最下方边界,如果最上方Item不在显示页面了就移动到最下方,如果最下方Item不在显示页面就移动到最上方,边界就用RectTransfrom.GetWorldCorners获取实现了思路1时,只是可以无限滚动效果但是真实情况要和数据结合在一起,我这边是使用一个Vector2Int _windowEdge字段,其中x代表当前页面显示的第一个数据索引,y代表当前页面显示的最后索引,可以当做一个数据窗口,当进行思路1中在向最下方/最上方移动时这个窗口会向下/向上移动.原创 2021-09-14 17:18:27 · 149 阅读 · 0 评论 -
UGUI练习 - 分页滚动、随着滚动调整Scale动效
项目地址原创 2021-09-13 14:01:27 · 190 阅读 · 0 评论 -
UGUI练习 - Tab选项卡以及自定义灵活网格
原作者视频项目地址这个练习是Tab和自定义网格布局组合完成的具体效果如下Gif图首先Tab功能就是TabGroup负责控制每一个TabButton对鼠标进入、离开、选择,针对进入和离开做出不同的反应,针对选择选择激活相应的GameObject,代码就是2个脚本很简单,可以直接看上面项目脚本。从上面Gif中可以看到每个页面都有不同的网格布局,并且都是同一个布局组件实现的。如果想实现自定义布局需要继承LayoutGroup抽象类具体如下代码,覆写的这个函数看名字很奇怪是计算布局的垂直..原创 2021-09-10 10:18:36 · 475 阅读 · 0 评论 -
UGUI练习 - 提示框
原作者视频简单的提示框功能效果图:制作提示框,各个组件的用途提示框有标题和内容,这个是上下布局所以用VerticalLayoutGroup,Padding设置上下左右以及上下内容元素的间距,Control Child Size内容元素的大小将会自己调节,Child Force Expand元素将会自动铺满。Content Size Fitter Tips Bg将会根据内容大小将会自己调节Layout Element TextMeshPro里面的文本将会一直往后排列,像下面这样。2..原创 2021-09-09 09:55:09 · 164 阅读 · 0 评论 -
unity合并网格
/// <summary> /// gameObject为空对象。其子物体有对应的物体入方块,球,胶囊 /// 运行后空物体将会生成一个将方块球胶囊合并的网格 /// </summary> void MergeMesh() { MeshFilter[] meshFilters = GetComponentsInChil...原创 2020-09-27 18:17:19 · 144 阅读 · 0 评论 -
DoTween常用示例——2
public class DoTweenTest : MonoBehaviour{ private Tween mTweener; void Start() { //////////////////////////SetLoops////////////////////////// //路径:开始位置->目标位置->开始位置-...原创 2020-10-21 16:44:04 · 111 阅读 · 0 评论 -
DoTween常用示例——1
1、数字上升滚动void Start() { //理解为存放Tween的队列(先进先出) mSequence = DOTween.Sequence(); mSequence.SetAutoKill(false); } private void Add2Sequence_1() { //这种lambda...原创 2020-10-21 16:44:09 · 406 阅读 · 0 评论 -
ScreenToWorldPoint原理
屏幕坐标转换为世界坐标原理原文: http://www.skcircle.com/?id=1359下面代码是自己的修改void Update() { //DrawViewport(); if (Input.GetMouseButtonDown(0)) { Vector3 mousePos = new Vector...原创 2020-11-06 17:15:00 · 522 阅读 · 0 评论 -
Unity摄像机随着鼠标上下左右移动
private void CameraMove() { Vector3 viewPortPos = Camera.main.ScreenToViewportPoint(Input.mousePosition); if (viewPortPos.x < 0 || viewPortPos.y > 1) { ...原创 2020-11-13 22:58:03 · 280 阅读 · 0 评论 -
Unity画一个网格
参考:https://springdong.blog.csdn.net/article/details/77369734这位大佬的文章using UnityEngine;[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]public class GridDraw : MonoBehaviour{ vo...原创 2020-11-28 11:57:05 · 449 阅读 · 0 评论 -
Unity生成Cube
using System.Collections;using System.Collections.Generic;using UnityEngine;[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]public class CreateCube : MonoBehaviour{ private Vecto...原创 2020-12-06 22:30:44 · 743 阅读 · 0 评论 -
Unity生成圆角Cube
原文作者:Jasper Flick内有注释,看不懂的私信我using System.Collections;using System.Collections.Generic;using UnityEngine;[RequireComponent(typeof(MeshFilter), typeof(MeshRenderer))]public class CreateFilletCub...原创 2021-01-25 20:57:38 · 833 阅读 · 0 评论 -
Unity场景相关
1、运行时创建场景 poolScene = SceneManager.CreateScene(name); 类似将场景拖入2、SceneManager.SetActiveScene(scene); 设置为活跃场景 将获得这个场景相关效果 如灯光等(需要先烘焙)3、SceneManager.UnloadSceneAsync(loadedBuildIndex); 卸载场景 直接Hierarchy消...原创 2021-01-25 20:59:59 · 367 阅读 · 0 评论 -
uMVVM开源项目学习
学习博客:https://www.cnblogs.com/OceanEyes/p/unity3d_framework_designing_get_started_with_mvvm_part1.html具体自己看原作者博客下面列举最重要的几个类1、将数据封装成了这样一个类, 在这个的数值发生变化时将会触发对应的委托public class BindableProperty<T>...原创 2021-04-28 18:30:23 · 549 阅读 · 0 评论