Unity基础
Unity基础知识
Jack Yan
Unity开发;
Keep Reading , Keep Writing , Keep Coding.
展开
-
UnityAPI系统信息类SystemInfo
可以查看显卡信息,内存信息等系统信息。原创 2024-07-27 10:34:36 · 273 阅读 · 0 评论 -
unity3d要求ndk版本为19.0.5232133
https://dl.google.com/android/repository/android-ndk-r19-windows-x86_64.zip原创 2020-07-21 10:41:19 · 5649 阅读 · 12 评论 -
【Unity】旋转Vector3和Quaternion扩展,Vector3绕*轴旋转**度
旋转Vector3算一个Vector3绕指定轴旋转指定角度后所得到的向量。/// <summary>/// 计算一个Vector3绕指定轴旋转指定角度后所得到的向量。/// </summary>/// <param name="source">旋转前的源Vector3</param>/// <param name="axis">旋转轴</param>/// <param name="angle">旋转角度原创 2020-12-25 15:06:29 · 4312 阅读 · 1 评论 -
AVProVideo动态设置DisplayUGUI的UVRect失效,重新绘制顶点(Graphic.SetVerticesDirty())
目录问题描述解决方法问题描述运行播放视频后,在Inspector面板修改UVRect会生效; public DisplayUGUI displayUI; public void SetUVRect() { displayUI.m_UVRect = new Rect(0, 0, 0.5f, 1); }但在使用代码修改却没了达到相应的效果,为什么失效了呢?解决方法应该是修改UV后图形显示没有重新绘制,告诉显示图形你的顶点修改了,需...原创 2020-11-04 16:41:09 · 1404 阅读 · 0 评论 -
【Unity技术专题】UGUI相关
1.UGUI游戏菜单 2.UGUI游戏开始菜单&技能菜单、技能冷却&人物角色面板及背包系统&关卡选择界面&滑动任务列表&游戏设置界面&游戏登陆界面 3.UGUI系统应用案例Nightmares(噩梦) 4.UGUI背包系统 5.UGUI常用控件组件练习 6.UGUI内核大探究(九)Image与RawImage 7.关于Canvas/Canvas Scaler/Graphic Raycaster组件详解 8.UGUI 文本多语言方案 9.Ci..原创 2020-10-19 15:54:05 · 192 阅读 · 0 评论 -
【Unity技术专题】unity相关的一些技术文档
Git使用教程:最详细、最傻瓜、最浅显、真正手把手教! 看完这篇还不会用Git,那我就哭了! 【github】论怎么去写一个高大上的ReadMe Unity文件、文件引用、Meta详解 计算机启动过程 Unity 大版本更新之APK的下载与覆盖安装 I need help understanding TransformDirection Explanation Local Vs Global Space Unity Transform* methods explained. Part I –原创 2020-10-19 16:14:43 · 747 阅读 · 0 评论 -
【Unity技术专题】unity一些小测试
更换材质球测试 一个生日蛋糕小模型 PlantUML工具练习 脚本定义符号使用 使用C#执行外部exe和bat 基于NGUI的一个摇杆 多重相机测试 C#的排序练习 MVP模式学习DEMO 洗牌算法 C# Socket网络编程 C# 压缩 Unity 调用C++编写的DLL 音乐混响插件 查看阅读IL代码 浅谈C#与lua的闭包 在lua中模拟类、继承、多态 关于多播委托抛出异常的测试 网络环境模拟测试工具 Lua中的os.date和os.time函...原创 2020-10-19 16:16:32 · 194 阅读 · 0 评论 -
【Unity Script Collection】Editor
ToolsFavorites List- mark objects/scenen/assets as favorites to return to them quickly. REX Diagnostics- runtime evaluation of c# expressions. Better Defines- platform dependent preprocessor directive manager. MissingReferencesUnity- find missing ...原创 2020-10-21 09:08:34 · 231 阅读 · 0 评论 -
【Unity Script Collection】Meshes & Construction
ProceduralToolkit- procedural mesh toolkit/generator. Draw- draws primitives with lines. VolumetricLinesUnity- volumetric lines. giles- 3d runtime level editor. Voxelmetric- voxel framework. Procedural Shapes for Unity- procedural shapes. ICO S...原创 2020-10-21 09:07:19 · 197 阅读 · 1 评论 -
【Unity Script Collection】Materials & Shading
Projects by RM- wet surface & skin shader. Ocean Community Next Gen- water physics/shader. Flow Map Shader- flow map shader working with sprites. VertexPaint- additional vertex streams. ShaderProject- shader collection. Skybox Plus- a collec...原创 2020-10-21 09:07:06 · 121 阅读 · 0 评论 -
【Unity Script Collection】GameObjects & Transforms
RecyclerKit- pooling system. UnityOctree- octrees. In-Game Replay System- record and replay transforms. Unity Scene Query- library to traverse and query the Unity scene to find particular objects. UnityTools- Runtime transformation gizmos. Unity3...原创 2020-10-21 09:06:01 · 89 阅读 · 0 评论 -
【Unity技术专题】 属性标签、Attribute
举两个例子,在变量上使用[SerializeFiled]属性,可以强制让变量进行序列化,可以在Unity的Editor上进行赋值。在Class上使用[RequireComponent]属性,就会在Class的GameObject上自动追加所需的Component。以下是Unity官网文档中找到的所有Attribute,下面将按照顺序,逐个对这些Attribute进行说明和小的测试。部分例子使用了Unity官方的示例。UnityEngineAddComponentMenu可以在Unity原创 2020-10-19 15:34:26 · 1244 阅读 · 0 评论 -
unity基础 设置物体自动朝向相机
写一个脚本代码如下,挂载到需要自动朝向相机的物体//19.朝向相机 private Transform camTran; void Start() { camTran = SvrManager.Instance.head.transform; } void Update() { Vector3 relativePos = transform.position - camTran.position; Qua.原创 2020-10-10 15:40:04 · 1180 阅读 · 1 评论 -
Unity AnimationCurve显示变量变化曲线
//AnimationCurve显示变量变化曲线 public AnimationCurve curve = new AnimationCurve(); void Update() { //设置变量 float value = Mathf.Sin(Time.time); curve.AddKey(Time.realtimeSinceStartup, value); }原创 2020-10-10 15:36:51 · 538 阅读 · 0 评论 -
unity基础 Profiler性能测试 Profiler.BeginSample
自定义标签,Profiler性能分析//Profiler性能测试Profiler.BeginSample("curve");for (int i = 0; i < count; i++){Debug.Log(i);}Profiler.EndSample();原创 2020-10-10 15:35:40 · 2130 阅读 · 0 评论 -
Unity Animation动画重置
void ReseetAnimation(Animation _animation) { foreach (AnimationState state in _animation) { _animation.Play(state.name); state.time = 0; state.enabled = true; _animation.Sample(); ...原创 2020-10-10 15:32:00 · 1929 阅读 · 1 评论 -
unity基础 协程基本用法 实现buff 持续伤害效果
void Start () { StartCoroutine(ChangeColor()); StartCoroutine(TakeDamage(1, 5));//每隔一秒伤害一次,共伤害5次 } IEnumerator ChangeColor() { //等到这一帧结束 yield return new WaitForEndOfFrame(); //等待50帧 for (int i = 0..原创 2020-09-15 17:56:50 · 1274 阅读 · 0 评论 -
unity基础 Vector3.Lerp均速运动
public GameObject target; Vector3 targetV3; Vector3 position; float timer; void Awake() { targetV3 = target.transform.position; timer = 0; position = transform.position; } void Update () { //tr...原创 2020-09-15 17:45:34 · 2333 阅读 · 0 评论 -
Unity基础之单例:单例脚本、单例模板
1.单件脚本,需提前挂载到场景内using UnityEngine;using System.Collections;public class SingletonA : MonoBehaviour { //第一种单例:单件脚本 public static SingletonA Instance{get;private set;} void Awake() { Instance = this; } public void Test(原创 2020-09-15 16:35:01 · 2252 阅读 · 0 评论 -
Unity基础之四元数用法
四元数表示一个旋转。我们无需掌握计算,理解用途就可以使用。 一个四元数Q 有两种用途: 1.表示状态。表示旋转状态,比如transform的rotation属性就是一个四元数。 2.表旋转动作。四元数乘以另一个四元数,表示旋转操作的叠加;四元数"乘"一个三维向量,表示对改向量进行 Q表示的旋转。 Tips: 第一种情况,也可看作从初始状态进行 Q表示的旋转。 创建四元数有常用方法如下: 1.new创建新的四元数 2.指定旋转轴和角度创建四元数 3.从欧拉角创建..原创 2020-09-14 15:30:03 · 1447 阅读 · 2 评论 -
Unity为什么是4X4矩阵 矩阵平移、矩阵旋转、矩阵缩放、矩阵复合变换
1.为什么模型的变换是4X4而不是3X3的矩阵变换? 我们知道,在空间里的点的坐标是vector3类型的,即是三维的,那为什么要用4维矩阵才能进行旋转平移和缩放呢?要解决这个问题就要从变换的本质来谈起。我们知道,在变换里分为线性变换和非线性变换,比如:我们対模型进行缩放,那么缩放后的点坐标是Pn=aPo (Po是以前的坐标空间,Pn是新的坐标空间,a是缩放比例)好的,现在缩放用3x3是没问题的,那么先缩放再平移呢?如:Pn= Apo+B (B是平移量)我们发现不能写成Pn =A...原创 2020-09-14 15:15:45 · 8673 阅读 · 1 评论 -
快速优化手游性能-从UGUI优化说起
UI制作规范和指导方法本文是关于UGUI优化的,或许你会觉得UI的制作规范及指导方法与优化无关,其实很多性能问题往往是资源的不合理使用造成的,比如使用了尺寸过大的图片、引用了过多的图集以及加载了不必要的资源等。如果从设计和制作UI一开始就遵守特定的规范,则可以规避不必要的性能开销。笔者根据参与的多个项目总结了以下几点通用的规范和指导方法(这些规范适用于所有项目,不管你使用UGUI还是NGUI)。1. 合理的分配图集合理的分配图集可以降低drawcall和资源加载速度;具体细节如下:● 同一个原创 2020-09-14 14:29:34 · 187 阅读 · 0 评论 -
Unity基础 静态扩展 GameObject 实现链式编程
目录1.链式写法效果2.扩展类3.注意格式4.优劣1.链式写法效果 public GameObject go; void Start () { //调用1:直接.方法 go.ReName("new name hhhh").Layer(1).Show().End(); //调用2:静态调用 GameObjEx.ReName(go, "ttttt").Layer(5).End(); }2.扩展类using UnityEngine;public.原创 2020-09-03 15:35:41 · 403 阅读 · 0 评论 -
Unity拖尾组件现实Collider效果 TrailRenderer Collider
实现思路unity自带组件TrailRenderer不带Collider,如果想实现碰撞触发功能怎么实现呢在拖尾移动时生成小球,用小球colliderr当做触发器,动态计算小球的存在时间,超时后销毁记录小球生成时间Point.cs记录小球生成时间,OnTriggerEnter内做触发处理挂载到小球预设体上面using UnityEngine;public class Point : MonoBehaviour{ public float createTime;原创 2020-08-14 10:49:00 · 702 阅读 · 0 评论 -
Unity数据容器ScriptableObject
ScriptableObject是一个数据容器,它可以用来保存大量数据,主要的用处就是在项目中通过将数据存储在ScriptableObject对象,避免值拷贝来减少游戏运行中的内存占用。当你有一个预制体,上面挂了一个存有不变数据的MonoBehaviour 脚本时,每次我们实例化预制体时都将产生一次数据拷贝,这时我们可以使用ScriptableObject对象来存储数据,然后通过引用来访问预制体中的数据。这样可以避免在内存中产生一份拷贝数据。与MonoBehaviour 一样,ScriptableObj原创 2020-08-11 16:48:36 · 403 阅读 · 0 评论 -
Unity3d自定义枚举多选
Unity3d枚举多选默认的enum枚举在监视窗口下是只有单选的,下面只需要添加简单的脚本,便能实现多选新建C#脚本EnumFlags和EnumFlagsDrawer打开EnumFlags脚本添加如下代码using UnityEngine;public class EnumFlags : PropertyAttribute { }打开EnumFlagsDrawer脚本,添加如下代码using UnityEngine;using UnityEditor;[CustomP原创 2020-07-31 17:06:52 · 548 阅读 · 0 评论 -
Unity进度条 异步加载SceneManager.LoadSceneAsync
/// <summary>/// 场景切换/// 在unity 获取当前加载进度progress中,其中最多到0.9.只有等到加载到第二个场景才会到1/// 所有在加载进度条时如果progress的值近似0.9,则直接将进度参数设置为1,实现进度到100%/// 并且progress的值是在一帧加载一些资源,所以其值不会是连续的,因此设置两个参数来记录当前/// 进度和页面显示的进度,进行++。/// </summary> public Slider sl...原创 2020-07-17 10:58:55 · 1474 阅读 · 0 评论 -
Unity内置JsonUtility.FromJson解析List
注意:JsonUtility.FromJson 方法只能接受 json 对象,如果是 json 数组会提示错误 JSON must represent an object type被转换的对象必须是可被序列化的,需要标记[System.Serializable] 属性写数据类 public class VideoData { public List<JsonVideoData> datas; } [Serializable...原创 2020-07-03 15:04:08 · 9739 阅读 · 2 评论 -
转载文章汇总
Unity3D中调用C++动态链接库(dll)-两种方式(Managed Plugins 和 Native Plugins)https://blog.csdn.net/kuaxianpan2004/article/details/86160840Unity Console窗口中文乱码 解决方案https://blog.csdn.net/qq_39710961/article/de...原创 2019-12-24 09:12:58 · 93 阅读 · 0 评论 -
Unity3D创建Texture3D,给shader使用
创建Texture3D,本文以159张128*128图片转化Text3D为例 public Texture2D[] sourceTextures; Texture3D texture3D; Texture3D CreateText3D(int width, int height, int deep) { List<Color32> c...原创 2019-12-19 16:02:59 · 3095 阅读 · 2 评论 -
Unity直接使用.java文件
目录环境配置说明前言准备一个.java插件的源文件Unity工程调用安卓自Toast功能不想复制粘贴的,可以下载工程查看环境配置说明Unity2018.4.12f1(64bit),Visual Studio Pro 2019前言从Unity2018.2版本以后,Unity已经可以直接编译 .cpp、.a、.java 文件作为 插件 在Unity程...原创 2019-12-12 14:24:05 · 2138 阅读 · 4 评论 -
修改UGUI数值、忽略监听事件
UGUI添加监听后,你修改数据会触发监听,而监听会保存数据,现在先做的是从数据还原UI,修改UI会触发监听,没有必要保存即:只有外部改变时才会触发监听,还原数据、修改数据时不会触发监听一个简单的思路,先移除,修改值,再监听 public Dropdown dropdown; void Start() { dropdown.onVal...原创 2018-11-19 19:17:01 · 304 阅读 · 0 评论