自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

萧然

喜欢玩游戏更喜欢做游戏

  • 博客(195)
  • 资源 (2)
  • 收藏
  • 关注

原创 【Unity】EditorSceneManager.LoadSceneAsyncInPlayMode加载不在场景列表的场景

//加载场景路径(从Assets开始,以.unity后缀名结束) sceneFullName = "Assets/Scenes/Main.unity"; LoadSceneParameters parameters = new LoadSceneParameters() { loadSceneMode = LoadSceneMode.Single,localPhysicsMode = LocalPhysicsMode.None }; Asy...

2021-06-19 12:12:21 1259 2

原创 【Unity】修改UI Prefab预览环境Canvas(Environment)

比如Canvas的渲染模式设置为"Screen Space - Camera",打开UI prefab,却是在Unity提供的默认Canvas下预览的,这样很多参数设置

2021-06-16 14:55:45 6681

原创 【Unity】角色沿着地形边缘滑行效果实现

如图,游戏角色在地形的边缘,且沿移动方向(蓝色Z轴方向)继续移动将要掉落地形时,控制角色沿着地形边缘滑行移动,而不是让角色直接停在原地(这样处理游戏体验极差)。using System.Collections;using System.Collections.Generic;using UnityEngine;public class Player : MonoBehaviour{ private Rigidbody roleRigidbody; private int ..

2021-05-29 18:18:56 1477 1

原创 【Unity】基于UnityWebRequest简单封装Http的Get/Put/Post

HttpManager,统一对外接口using System.Collections.Generic;using System;using System.Text;//GET请求会向服务器发送索取数据的请求,从而获取信息。只是用来查询数据,不会修改、增加数据,无论进行多少次操作结果一样。//PUT请求是向服务器发送数据的,从而改变信息。用来修改数据的内容,但不会增加数据的种类,无论进行多少次操作结果一样。//POST请求同PUT请求类似,向服务器发送数据。但是会改变数据的种类等资源,会创.

2021-05-29 16:34:00 2704 5

原创 【Unity】自定义[Attribute]特性标记

继承Attribute,自定义特性类using System;public class HttpApiKey : Attribute{ public HttpApiKey(string _httpApi) { httpApi = _httpApi; } public string httpApi;}使用示例public class HttpId{ //示例,给id标记api [HttpApiKey("Register".

2021-05-29 16:12:55 1390 1

原创 【UGUI】使用Screen.safeArea适配全面屏/异形屏

使用Screen.safeArea适配全面屏/异形屏

2021-03-05 16:04:26 7208

原创 【Unity】UI或3D场景自动设置渐变色背景

给定一组色值(或者多组色值,每次随机取一组),初始化时创建图片并赋值给UI的Image或3D场景的Sprite。从下/左往上/右,按曲线渐变using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;[RequireComponent(typeof(Image))]public class BgGradient : MonoBehaviour{ ...

2021-01-21 14:45:15 1624 2

原创 【Unity】UGUI动态适配Text尺寸大小

Text.preferredWidth /Text.preferredHeight : Text的最优宽度/高度,保持当前高度/宽度不变,计算最优宽度/高度在Text.text赋值字符串后,计算字符串的最优高度或宽度,可动态调整Text尺寸大小例如,限制Text的最大和最小宽度,自动调整高度:public class Test : MonoBehaviour{ //Text最小/最大宽度 private int textSizeMinWidth = 100; ...

2020-12-31 18:25:28 3782

原创 计算点到直线/线段的距离

计算目标点到直线/线段的距离,先计算直线/线段上距离目标点最近的点,目标点与最近点的距离,即目标点到直线/线段的距离。计算最近点: //点到直线的最近点 public void GetNearPointToStraightByPoint(Vector3 targetP,Vector3 lineStartP,Vector3 lineEndP,ref Vector3 nearP) { GetNearPointToStraightByDir(targetP...

2020-12-24 17:18:15 1472 3

原创 【UnityEditor】Undo撤销编辑器下的操作,如撤销创建/销毁的物体

编辑器下的一些操作默认是不可撤销的,如创建、销毁物体,使用Undo可以将某个操作标记为可撤销操作,Ctrl+Z即可撤销实例:using UnityEngine;using UnityEditor;public class TestUndoEditorWindow{ [InitializeOnLoadMethod] public static void Init() { SceneView.duringSceneGui += DuringSce.

2020-12-16 15:13:07 2265

原创 【UnityEditor】在Editor编辑器下自动编辑Prefab预制体并另存为,可批量编辑

1. 在场景中实例化Prefab public GameObject LoadPrefabToScene(string loadPath,string prefabName) { //加载路径 string loadFullPathName = string.Format("{0}/{1}.prefab",loadPath,prefabName); //加载预制体 GameObject prefabSource = Asse

2020-12-09 11:18:55 3074

原创 【Shader】用两张贴图实现角色模型眨眼动作

眼睛部分单独作为一个材质球,准备一张睁眼一张闭眼的贴图,在shader中自动切换贴图,实现眨眼效果Shader "MyShader/ChangeEmoji"{ Properties { _MainTex ("Open Eye Tex", 2D) = "white" {} _TargetTex ("Close Eye Tex", 2D) = "white" {} _BlinkSpeed("Blink Speed",float) = 3 _...

2020-11-04 17:09:41 1293

原创 【Unity】UGUI动态切换不同尺寸图片时自动设置Image大小

UGUI动态切换不同尺寸图片时自动设置Image大小:1.image.SetNativeSize(),将Image设置为贴图的原始尺寸2.sprite.rect获取贴图尺寸,rectTransform.sizeDelta设置Image尺寸,可以自定义缩放 float imageSizeScale = 1; Image image = null; Sprite sprite = null; //image.SetNativeS...

2020-10-30 15:40:45 6326 2

原创 【问题记录】Unity打包iOS,Calling TargetGuidByName with name=‘Unity-iPhone‘ is deprecated

报错:Exception: Calling TargetGuidByName with name='Unity-iPhone' is deprecated. There are two targets now, call GetUnityMainTargetGuid() - for app or GetUnityFrameworkTargetGuid() - for source/plugins to get Guid instead.UnityEditor.iOS.Xcode.PBXProject.

2020-10-28 15:50:46 2271 2

原创 【Shader】利用_Time实现贴图闪烁效果,两个颜色渐变或alpha渐变

_Time/_SinTime/_CosTime的x,y,z,w分量含义:实现贴图颜色在两个色值之间渐变,或者贴图alpha值渐变:Shader "MyShader/SpriteFlicker"{ Properties { _MainTex ("Texture", 2D) = "white" {} _StartColor("StartColor",Color) = (1,1,1,1) _EndColor("EndColor",Color) = (0,0,0,1)

2020-10-26 14:32:28 1317

原创 【Unity】监听Animator的动画播放结束/判断动画切换

判断动画播放结束,可以在动画片段中添加帧事件,不过有时候在动画末尾的事件会因为动画融合触发不了,【问题记录】Unity动画片段Animation的Events帧事件没有调用,还可以代码判断:在Animator中给动画片段添加Tag,然后再Update()中判断AnimatorStateInfo1. animatorInfo.normalizedTime获取当前动画的播放进度,animatorInfo.IsTag识别当前动画可以直接使用animatorInfo.normalizedTime .

2020-10-12 15:03:35 16278

原创 【问题记录】UnityEditor.Graphs.Edge.WakeUp () (at /Users/***/Graphs/UnityEditor.Graphs/Edge.cs:114)

报错:UnityEditor.Graphs.Edge.WakeUp () (at /Users/bokken/buildslave/unity/build/Editor/Graphs/UnityEditor.Graphs/Edge.cs:114)原因:所有搜到的解释都是Unity抽风了···,甩锅Unity解决:重启Unity

2020-09-22 18:19:39 4630 5

原创 【问题记录】Unity动画片段Animation的Events帧事件没有调用

问题:监听角色翻滚闪避动画,闪避结束后切换到下一状态,在翻滚Animation的末尾添加的Event帧事件,运行过程中没有成功调用原因:在Animator中动画切换时勾选了HasExitTime,切换时会有动画过度时间,两段动画进行融合,期间会,如果帧事件是添加在过度时间段内,某些情况下不会调用解决:一、可以取消勾选HasExitTime,取消后不会过度两段动画,上一段动画会完整播放,不会漏掉帧事件;问题是动画切换时角色模型。二、将帧事件...

2020-09-21 13:59:40 2821 1

原创 【C#】字典Dictionary.Add不是把新的元素插入到字典最后面

有些时候在Dictionary中Add添加键值对后,并不是直接加到Dictionary的最后面,遍历时元素的顺序不是元素添加的先后顺序。因为字典Dictionary并不是有序存储的,在删除中间某个元素后,会留下一个空位,后续添加元素会填到这个空位,导致顺序“错乱”。Dictionary实现原理参考:浅谈C# Dictionary实现原理代码演示:Log结果显示,字典内元素顺序是"1,2,6,4,5",而不是"1,2,4,5,6"。 Dictionary<int, str

2020-09-11 18:02:42 4191

原创 【Shader】Unity的UGUI中,彩色图片置灰效果

通过rgb计算灰度值,然后重新赋值给rgb。half gray = dot(color.rgb, fixed3(0.299, 0.0587, 0.114));color.rgb = half3(gray, gray, gray);彩色图变灰RGB的权重会固定为(0.299, 0.587, 0.114)或(0.222, 0.707, 0.071)。研究表明,人眼对绿色的敏感度最高,对红色的敏感度次之,对蓝色的敏感度最低。使用不同的权重将得到比较合理的灰度图像。实验和理论推导出来的结果是(0.299

2020-09-11 10:33:09 3108

原创 【Unity】UI界面展示3D模型

方法一:使用RenderTexture。RawImage作为UI元素可随意调节显示层级(即UI子物体先后顺序),适合将3D物体投影到局部UI界面。1. Project中创建RenderTexture;2. UI新建RawImage,设置Texture为RenderTexture;3. 3D物体Cube标记Layer为"Cube";4. 新建相机,设置ClearFlags、CullingMask,设置TargetTexture为RenderTexture。方法二:直接使..

2020-09-10 22:45:44 9020

原创 【Unity】使用LineRenderer实现闪电效果

参考http://Lightning - Procedural Lightning - AAA Quality, Performance and Sound. Dozens of Prefabs. 2D + 3D.,针对项目做了比较大的修改,原理是一致的:1. 使用LineRenderer组件随机闪电的路径;2. 通过截取材质贴图显示区域使闪电看起来更多样。using System.Collections;using System.Collections.Generic;using U..

2020-08-21 14:42:54 3927

原创 【Unity】滚动缩放关卡选择列表

简单实现,正式用时继续优化,现仅支持左右切换按钮点击,后续增加单元格面板点击切换,左右滑动切换···using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public class UIChapterPanel : UIPanelBase{ private UIChapterItem[] chapterItemArray; priv..

2020-08-18 11:49:02 2496 17

原创 【问题记录】【Unity打包iOS】No account with App Store Connect access have been found for the team “xxx“

报错:XCode打包正常,上传iOS商店后台是报错:No account with App Store Connect access have been found for the team "***", App Store Connect access is requried for App Store distribution.原因:没有找到Team的App Store Connect access账号,搜到一些相关的解决办法,原因可能是以下几点:1. 证书过期;2. Xcode配置出.

2020-08-04 09:44:33 2380

原创 【C#】【温故知新】枚举类型Enum定义位标志,与或非的计算

使用枚举类型定义位标志,从而使该枚举类型的实例可以存储枚举数列表中定义的值的任意组合。每个枚举值值都是2的n次幂,指数依次递增。官方文档:枚举类型(C# 编程指南),FlagsAttribute Class示例://组合枚举常量中的各个标志不会重叠,0表示未设置任何标志// 0 - None// 1 - Black// 2 - Red// 3 - Black, Red// 4 - Green// 5 - Black, Green// 6 - Red, Green// 7 -

2020-07-24 22:40:25 803

原创 【Unity】物理系统的静态碰撞体、刚体碰撞体、Kinematic刚体碰撞体

碰撞体分为三类(触发器同理):静态碰撞体、刚体碰撞体、Kinematic刚体碰撞体。静态碰撞体:不挂载刚体组件的碰撞体常用于地形、障碍物等不会移动位置的物体,物理引擎会对此优化性能。在游戏运行时,不应当改变静态碰撞体的enabled选项或移动、缩放碰撞体,否则会给物理引擎带来额外的计算工作量,导致性能显著下降。刚体碰撞体:挂载了刚体组件(非Kinematic)的碰撞体物理引擎会一直模拟计算刚体碰撞体的物理状态,会对碰撞以及施加的力做出反应。Kinematic刚体碰撞体:挂载了刚体组件且刚

2020-07-23 21:57:24 5895

原创 【Unity】战斗摄像机效果:视野拉近,屏幕抖动

通过缩放Camera的Field of View实现相机拉近/远效果,比如按下摇杆视野拉近,松开摇杆视野拉远利用AnimationCurve控制相机抖动曲线,实现类似爆炸效果视野震动using System.Collections;using System.Collections.Generic;using UnityEngine;public class CameraEffectTest : MonoBehaviour{ [Space] //震动时间 [Se..

2020-07-22 11:30:00 868

原创 【Unity】不用设置父子关系,使用Constraint组件约束物体

Constraint组件可以约束物体,链接本物体与目标物体的Transform,跟随目标物体的位置、旋转、缩放,实现父子物体一样的效果,却不用设置父子关系。而且一个物体可以同时关联多个目标物体,设置不同的权重官方文档:https://docs.unity3d.com/Manual/Constraints.htmlAim Constraints: 瞄准目标对象,自动设置物体的旋转 Look At Constraints: 朝向目标对象,同上 Parent Constraints: 关联位置与旋转关

2020-07-07 15:13:36 7882 1

原创 【Unity】利用协程实现非Mono类延迟调用方法

1. 利用协程可以实现方法延时调用2. 继承CustomYieldInstruction类,可以自定义yield指令using System.Collections;using System.Collections.Generic;using UnityEngine;using System;public class DelayToInvoke{ //内部类 private class TaskBehaviour : MonoBehaviour { }

2020-06-29 11:58:18 1507

原创 【C#】【温故知新】委托与接口中泛型的协变与逆变

public class Test : MonoBehaviour{ //协变,out修饰返回值 public delegate T Function<out T>(); //逆变,in修饰传入参数 public delegate void Action<in T>(T t); public class Animal { } public class Dog : Animal { } private void Start.

2020-06-20 23:48:15 264

原创 【C#】【温故知新】类型转换之拆箱/装箱(boxing/unboxing),溢出检测checked/unchecked,自定义转换implicit/explicit

装箱boxing:是值类型到引用类型的隐式转换,根据值类型的值,在堆上创建一个完整的引用类型对象,并返回对象的引用。 int i = 1; //值类型 object o = i; //引用类型,在堆上创建int对象,将i的值赋值给对象,将对象的引用返回给o装箱操作后,原值类型与新引用类型相互独立,可以单独操作。 int i = 1; object o = i; Debug.Log(i + "

2020-06-20 22:02:34 303

原创 【C#】【温故知新】多维数组之矩形数组与交错数组

数组分为一维数组与多维数组,多维数组又分为矩形数组与交错数组。矩形数组:某个维度的所有子数组长度相同。(与矩阵类似) int[,,] array1 = new int[2, 3, 2]; int[,,] array2 = new int[,,] { { { 1, 1 },{ 2, 2 },{ 3, 3 } }, { { 4, 4 },{ 5, 5 },{ 6, 6 } } };交错数组:.

2020-06-20 17:31:31 416

原创 【Unity】Editor下批量修改UI Prefab字体

一般情况UI界面都是动态加载到场景,一键对UI Prefab批量修改字体,如果要修改字号、字体格式或者对齐方式等Text组件的其他操作,可以根据需求继续扩展。操作一:在面板中选中需要修改Text组件的预设体,打开"MyTools/Change Font"工具下的"Change Font By Select"面板,选择目标字体,"Change Selection Font"确认修改即可。操作二:替换字体,选择被替换的字体,查找,然后指定目标字体,"Change Selection Font

2020-06-19 16:54:24 1171

原创 【问题记录】Unity莫名其妙的几百个报错,原来是许可证过期了

报错:Assertion failed on expression: 'm_ErrorCode == MDB_MAP_RESIZED || !HasAbortingErrors()'Asset database transaction committed twice!Assertion failed on expression: 'errors == MDB_SUCCESS || errors == MDB_NOTFOUND'原因:Unity许可证过期···解决:重新激活许可..

2020-06-18 18:47:32 11698 5

原创 【问题记录】【Unity打包Android】Android NDK not found / NDK 16 detected. Unity requires NDK r19(64-bit)

NDK配置报错:Edit -> Preferences -> External Tool -> Android NDK不支持原有版本:android-ndk-r16b,需要r19才行NDK 16.1.4479499 detected. Unity requires NDK r19(64-bit)(19.0.5232133).打包报错:UnityException: Android NDK not foundAndroid NDK not found or i.

2020-06-15 16:17:55 7708 5

原创 【问题记录】【Unity打包Android】ArgumentNullException: Value cannot be null. Parameter name: path1

Unity版本:2019.3.15报错:ArgumentNullException: Value cannot be null.Parameter name: path1System.IO.Path.Combine (System.String path1, System.String path2) (at <437ba245d8404784b9fbab9b439ac908>:0)UnityEditor.Utils.Paths.Combine (System.String[] co

2020-06-15 15:58:42 7172 3

原创 【问题记录】【Unity打包iOS】bitcode bundle could not be generated because xxx was built without full bitcode

报错:打包Archive的时候报错:ld: warning: arm64 function not 4-byte aligned: _unwind_tester from /Users/xxx/xxx/xxx/Libraries/libiPhone-lib.a(unwind_test_arm64.o)ld: bitcode bundle could not be generated because '/Users/xxx/xxx/xxx/Frameworks/xxx/Plugins/iOS/xxxSD

2020-06-11 15:00:17 3279

原创 【问题记录】【Unity打包iOS】New apps that use UIWebView are no longer accepted

报错:We identified one or more issues with a recent delivery for your app, "xxx" 1.0.0 (0). Please correct the following issues, then upload again.ITMS-90809: Deprecated API Usage- New apps that use UIWebView are no longer accepted. Instead, use WKWebVi.

2020-06-11 14:34:28 1095

原创 【Unity】UGUI实现摇杆功能

using System.Collections;using System.Collections.Generic;using UnityEngine;using System;using UnityEngine.EventSystems;public class InputJoystick : MonoBehaviour{ //摇杆根节点 [SerializeField] RectTransform joystickRoot; //摇杆节点 [Seria...

2020-05-31 12:58:58 804

原创 【Unity】游戏中动态拷贝模型(网格/材质)

在游戏过程中,动态拷贝模型网格和材质球 : //拷贝当前模型 public static GameObject CopyModel(GameObject targetModel) { if (targetModel == null) return null; //获取子物体网格 SkinnedMeshRenderer oldMeshRenderer = targetModel.GetComponent<

2020-05-20 15:53:06 3510

【Unity】升级版·Excel数据解析,自动创建C#类,自动创建ScriptableObject生成类,自动序列化Asset

Excel数据解析,自动创建对应C#类,自动创建ScriptableObject生成类,自动序列化Asset文件 功能介绍链接 https://z-c-s.blog.csdn.net/article/details/125608062

2022-07-05

Unity ScrollRect 动态缩放大小,自动定位

Unity组件扩展: ScrollRect 动态缩放格子大小,自动定位到中间的格子 文章链接: https://blog.csdn.net/qq_39108767/article/details/119490977

2022-06-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除