自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(30)
  • 资源 (1)
  • 收藏
  • 关注

原创 unityshader Vs结构体顺序

在 Unity Shader 中,结构体的成员变量的定义顺序和在 Shader 中使用的顺序是有关系的。这是因为在 Cg/HLSL 代码中,结构体的成员变量是按照定义顺序存储的,而在 Shader 中使用结构体成员变量时,也是按照定义顺序来访问的。因此,如果结构体的定义顺序和在 Shader 中使用的顺序不一致,可能会导致访问到错误的数据,从而影响 Shader 的正确性。经检验,如果上述的结构体的顺序不一致,确实会导致效果不正确。

2023-04-28 15:56:38 117 1

原创 Unity 导入FBX提取材质贴图

当我们在建模软件制作好fbx,导入Unity时,会发现fbx有自带的材质,贴图,蒙皮,网格等多种资源,但是使用起来很不方便,所以想,在向unity导入fbx之后,直接就把里边的材质和贴图提取出来,并且不是默认的 Lit ,而是其它的自己写的shader。另一部分需要了解的是Unity里的 AssetPostprocessor 类,这个类可以帮助我们实现一些,关于导入导出资产时的相关回调。当我们在Unity中选中一个fbx资产的时候,可以在右侧的检视面板看到这样的一些按钮。将导入的材质提取为外部资源。

2023-04-21 20:32:34 2693

原创 Unity TimeLine 自定义轨道 Curve相关

声明一个字典 存自定义 clip的名字 和 curve信息 public Dictionary<string, CurveInfo> curveDict = new Dictionary<string, CurveInfo>(); public PlayableDirector Director ; List<TrackAsset> tracks = new List<TrackAsset>(); public Dictionary<strin

2022-04-25 15:55:53 1943

原创 Unity 动态修改URP后处理参数 Volume

引用命名空间using UnityEngine.Rendering;using UnityEngine.Rendering.Universal;以景深为例Volume volume = GameObject.Find("Global Volume").GetComponent<Volume>();;public DepthOfFieldMode modeType = DepthOfFieldMode.Gaussian; DepthOfField dof;//检测是否添加了

2022-04-02 11:32:06 8000 2

原创 Unity 代码切换 Android平台

新建一个脚本放在Editior文件夹下即可using UnityEditor;using UnityEngine;[InitializeOnLoad]//当加载Unity 或 该脚本重新编译的时候 执行public class PlatFormCheck { static PlatFormCheck() { if (SystemInfo.operatingSystem.StartsWith("Windows")) { Deb

2022-02-17 15:21:27 6014

原创 Unity TimeLine 自定义Track

如果有对TimeLine不熟悉的同学,可以先看一下这个视频https://www.bilibili.com/video/BV13T4y1A7Se?from=search&seid=10488791428047585833&spm_id_from=333.337.0.0在本方法中实现自定义track需要实现以下3个文件,以粒子特效为例子做演示using System.Collections;using System.Collections.Generic;using UnityEn

2022-02-14 17:16:32 3537

原创 Unity 动态切换天空盒

public List<Material> skyMats; RenderSettings.skybox = skyMats[1]; DynamicGI.UpdateEnvironment();一定要加DynamicGI.UpdateEnvironment();,不然只是天空盒换了,效果还是之前的效果

2022-01-05 14:03:38 4335

原创 Unity Editor 知识点整理(ScriptableObject)

创建模板[System.Serializable]//类可以序列化public class LevelSettings : ScriptableObject { public float TotalTime = 60; public float Gravity = -30; public AudioClip Bgm ; public Sprite Background; }在工具类中声明一个创建实例的方法/// <summary>/// 创

2022-01-04 14:17:08 2402

原创 Unity Editor 知识点整理 (GUI外观表现 GUIStyle和GUISkin)

GUIStyle对GUI中的某一个控件定制样式private GUIStyle _titleStyle;//初始化GUI Styleprivate void InitStyles(){ _titleStyle = new GUIStyle(); //对齐方式居中 _titleStyle.alignment = TextAnchor.MiddleCenter; //字体大小 _titleStyle.fontSize = 16;}对于纹理 要将其类型设置

2022-01-04 11:48:20 2848

原创 Unity Editor 知识点整理 (编辑器模式下获取鼠标位置和场景信息)

鼠标位置//获取鼠标位置信息,将鼠标位置转会为网格的行数 列数//current 保存了当前处理事件的所有信息 Vector3 mousePosition = Event.current.mousePosition ;场景信息场景视图是以左上角为坐标原点//场景视图也是有相机的 就是不可见//获取场景相机 使用SceneView 获取当前场景实例的相机Camera camera = SceneView.currentDrawingSceneView.camera;

2021-12-31 11:05:55 3172

原创 Unity Editor 知识点整理(创建 自定义场景视图 二)

//OnSceneGUI 绘制场景视图的GUI 不需要重写private void OnSceneGUI(){ DrawModeGUI(); ModeHandler();}//根据选中模式的不同 做不同的操作private void ModeHandler(){ switch (_selectedMode) { case E_Mode.Erase: case E_Mode.Paint:

2021-12-30 20:36:01 195

原创 Unity Editor 知识点整理(创建 自定义场景视图 一)

//自定义场景视图的四种模式 public enum E_Mode { View, Paint, Edit, Erase, }//OnSceneGUI 绘制场景视图的GUI 不需要重写 private void OnSceneGUI() { DrawModeGUI(); }//绘制场景模式GUIprivate void DrawModeGUI(){ //获取枚举里所有的项目 List<E_Mode&.

2021-12-30 20:00:36 412

原创 Unity Editor 知识点整理(创建 自定义编辑器窗体 三)

//具体绘制GUI的方法private void OnGUI(){ //显示文本 EditorGUILayout.LabelField("当前GUI已经被修改了"); DrawTabs(); DrawScroll();}绘制页签//绘制页签private void DrawTabs(){ //当前选中枚举的索引值 int index = (int)_CategorySelected; //绘制页签 创建一排按钮 //参数 当前

2021-12-30 17:38:38 275

原创 Unity Editor 知识点整理(初识 UnityEditor 下的AssetDatabase)

对资源进行相关操作的接口: AssetDatabase// 获得指定路径下的 指定脚本的 所有预制体 public static List<T> GetAssetsWithScripts<T>(string path) where T : MonoBehaviour { T temp; string assetPath; GameObject asset;

2021-12-30 14:34:50 562

原创 Unity Editor 知识点整理(创建 自定义编辑器窗体 二)

常用的EditorWindow 消息方法 //在我们对象被选中的时候调用的,常常用于一些初始化的代码 private void OnEnable() { } //在对象超出我们操作范围内调用的 //在对象被销毁的时候调用的 //可以用来做一些代码退出前的清理工作(数组清零,变量重置) private void OnDisable() { } //在对象被销毁的时候调用的 private void OnDestroy() {

2021-12-30 14:01:34 189

原创 Unity Editor 知识点整理(创建 自定义编辑器窗体 一)

首先在Editor 文件夹下创建脚本using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;namespace RunAndJump.LevelCreator{ //创建自定义编辑器窗体 需要继承EditorWindow public class PaletteWindow : EditorWindow { //自定义窗体一

2021-12-30 13:53:17 345

原创 Unity Editor 知识点整理(使用Inspector 查看自定义属性)

private Level _myTarget;private SerializedObject _mySerializedObject; //保存目标对象的序列化对象private SerializedProperty _mySerializedTotalTime; //保存序列化对象中的某一个属性private void OnEnable(){ _myTarget = (Level)target; InitLevel(); } private void InitLevel()

2021-12-30 11:52:13 383

原创 Unity Editor 知识点整理(创建自定义 属性绘制器)

2021-12-30 11:33:38 675

原创 Unity Editor 知识点整理(创建自定义 Inspector 补充)

绘制按钮 //绘制按钮 //判断行数 列数是否发生变化 //如果没有变化 这两个按钮就变为灰色 不响应事件 bool oldEnabled = GUI.enabled; GUI.enabled = (_newTotalColumns != _myTarget.TotalColumns || _newTotalRows != _myTarget.TotalRows); //参

2021-12-29 18:28:42 418

原创 Unity Editor 知识点整理(创建自定义 Inspector 二)

Level 脚本代码using UnityEngine;namespace RunAndJump { public partial class Level : MonoBehaviour { [SerializeField] public int _totalTime = 60; [SerializeField] private float _gravity = -30; [SerializeField] private AudioClip _bgm; [Serializ

2021-12-29 17:13:32 315

原创 Unity Editor 知识点整理(创建自定义Inspector 一)

在Unity中创建Editor文件夹,自定义的查看器脚本必须放在Editor文件夹下,然后再创建Scripts文件夹,一般Mono的脚本都会放在这个文件夹下。在Scripts文件夹下 创建Level脚本,申明一个public变量 totalTime在Editor文件夹下,创建Level Inspector脚本using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;

2021-12-29 16:52:02 488

原创 Unity Editor 知识点整理(Gizmo 常用绘制方法)

using System.Collections;using System.Collections.Generic;using UnityEngine;public class GizmoDemo : MonoBehaviour{ public Vector3 center = Vector3.zero; public Vector3 size = Vector3.one; public float radius = 1; public Vector3 rayF

2021-12-29 10:50:34 654

原创 Unity Editor 知识点整理(DrawGizmo的两种方法)

方法一using System.Collections;using System.Collections.Generic;using UnityEngine;public class GizmoExample : MonoBehaviour{ private void OnDrawGizmos() { //记录默认的值 var color = Gizmos.color; Gizmos.color = Color.white;

2021-12-29 10:03:24 537

原创 Unity Editor 知识点整理(特性 Class)

[Serializable]using System;using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;public class InspectorClass : MonoBehaviour{ public SerializeableClass SClass;}[Serializable] //序列化一个类,作为一个子属性显示在监视面板p

2021-12-28 15:19:53 369

原创 Unity Editor 知识点整理(了解 DrawGizmo 方法)

DrawGizmo // 摘要: // Defines when the gizmo should be invoked for drawing. // 定义Gizmo什么时候会被唤醒去绘画 // 参数: // gizmo: // Flags to denote when the gizmo should be drawn. public DrawGizmo(GizmoType gizmo); // 摘要: //

2021-12-28 14:03:22 527

原创 Unity Editor 知识点整理(特性 属性)

[Range(0, 100)] //限制数值范围 public float range_f; [Multiline(3)] //字符串多行显示 public string Multiline_s; [TextArea(2, 4)] //文本输入框 public string TextArea_s; [SerializeField] //序列化字段,主要用于序列化私有字段 private int private_int; [NonSe..

2021-12-28 13:26:34 726

原创 Unity Editor 知识点整理( ContextMenu)

构造函数 // 摘要: // Adds the function to the context menu of the component. // ContextMenu 属性用于向上下文菜单添加命令。 // 参数: // itemName: // The name of the context menu item. // isValidateFunction:

2021-12-28 12:23:07 379

原创 Unity Editor 知识点整理( MenuItem)

public MenuItem(string itemName, bool isValidateFunction);构造函数 // Creates a menu item and invokes the static function following it, when the menu // item is selected. // // 参数: // itemName: // The itemName is the

2021-12-28 11:15:48 363

原创 Unity play模式下选中物体的三种方式

射线检测(需要碰撞器)// 创建一条点击位置为光标位置的射线Ray rays = Camera.main.ScreenPointToRay(Input.mousePosition);//将射线以黄色的表示出来Debug.DrawRay(rays.origin, rays.direction * 100, Color.yellow);//创建一个RayCast变量用于存储返回信息RaycastHit hit;//将创建的射线投射出去并将反馈信息存储到hit中if (Physics.Raycas

2021-12-20 14:56:54 2209

原创 Unity 新手引导黑屏对话和按键提示(无Shader,无代码)

Unity 新手引导黑屏对话和按键提示新建一个unity 3D项目创建一个平面(plane)和一个方块(cube)当作我们最基础的场景在左侧的空白处右键新建一个面板,【右键】- 【UI】- 【Panel】 点击面板,在右侧的属性中,选择【Image】【Color】,设置为黑色,透明度设置为255在左侧的panel下新建一个Text,【panel】-【右键】-【UI】-【Text】选中新建的Text,在右侧的属性中添加button控件选中Text控件,将其中的color修改为白色,并调整文

2021-03-10 17:22:58 632

EPPlus.dll

EPPlus.dll version-5.5.4 unity使用推荐NET35

2021-02-22

空空如也

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

TA关注的人

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