
Unity
文章平均质量分 50
Unity相关
Prosper Lee
谁又能来拯救我这灰暗的人生呢……
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Unity(四十八):Unity与Web双向交互
@param name 游戏对象名称。* @param position 位置信息。* 获取游戏对象相对于屏幕的位置。"发送消息到unity!原创 2024-10-26 22:36:46 · 1586 阅读 · 0 评论 -
Unity(四十七):寻路网格-内置组件实现自动寻路避障
自动寻路避障,解决角色在多个平台间的自动寻路问题。:脚本需要绑定到地面对象上。原创 2023-02-05 13:26:49 · 3439 阅读 · 2 评论 -
Unity(四十六):遮挡剔除
游戏中的元素非常多,但是摄像机能看到的内容是有限的,并且有些元素会被另外一些元素挡住,例如城墙一类的,城墙后面的元素就会被它挡住。如果不进行处理的话,这些元素也会带来一定的开销,此时可以使用遮挡剔除技术来剔除掉这些被挡住的元素,只动态保留摄像机能看到的内容。所以这里建议手动创建遮挡区域 (Occlusion Areas) 放置在场景中,从而定义摄像机可能处于的区域的视图体积。遮挡区域,在大型的场景中如未创建遮挡区域游戏组件时,Unity会自动在烘焙时候进行创建,可能产生大量不必要数据。原创 2022-04-11 18:57:27 · 5150 阅读 · 0 评论 -
Unity(四十五):光照烘焙、反射探头
将场景中的灯光与物体产生的光照与阴影信息烘焙在一张或者多张Lightmap贴图中,这些物体将不再参与实时光照计算,从而减少了大量的性能开销。将光照烘焙下来的参数存储到脚本中以便运行时使用。参与烘焙计算的对象在游戏过程中不能发生移动。"Contribute GI 静态游戏对象""Mixed 烘焙光照贴图""Baked 烘焙光照贴图"原创 2022-04-06 15:37:37 · 6080 阅读 · 3 评论 -
Unity(四十四):XML、Yaml 读写
XML读写using UnityEngine;using System.IO;using System.Xml;namespace Example_01.Scripts{ public class CreateXMLFile : MonoBehaviour { private void Create() { string path = Path.Combine(Application.dataPath, "test.xml原创 2022-04-04 11:53:09 · 3368 阅读 · 0 评论 -
Unity(四十三):存档、文本文件读写
PlayerPrefs(运行模式)using UnityEngine;namespace Example_01.Scripts{ public class GameArchives : MonoBehaviour { public string key; public string nickName = "PLee"; public int age = 25; public float height = 1.71f;原创 2022-04-03 19:29:52 · 2286 阅读 · 0 评论 -
Unity(四十二):EPPlus读写Excel数据、JSON解析
获取EPPlus下载EPPlus将得到的EPPlus.dll移动到Plugins文件夹下读取Excel数据// Assets/Example_01/Editor/HandleExcel.csusing System;using System.Collections.Generic;using System.IO;using Example_01.Scripts;using OfficeOpenXml;using UnityEditor;using UnityEngine;原创 2022-03-29 11:44:43 · 4942 阅读 · 3 评论 -
Unity(四十一):Constraint 游戏对象跟随
效果Constraint 组件配置制作一个游戏对象始终朝向另一个游戏对象Aim ConstraintAim Constraint 可旋转游戏对象以朝向其源游戏对象。还可针对另一个轴保持一致方向。例如,可将 Aim Constraint 添加到摄像机。要在约束瞄准摄像机时保持摄像机直立,请指定摄像机的向上轴和向上的方向以使其对齐。使用 Up Vector 可指定受约束游戏对象的向上轴。使用 World Up Vector 可指定向上方向。当 Aim Constraint 旋转游戏对象以朝原创 2022-03-27 22:51:22 · 1906 阅读 · 0 评论 -
Unity(四十):TimeLine编辑器、Playables混合动画音频
TimeLine效果配置Playables脚本播放动画public class AnimationScript : MonoBehaviour{ public AnimationClip clip01; public AnimationClip clip02; private PlayableGraph _graph; private void OnGUI() { if (GUILayout.Button("Animati原创 2022-03-27 21:33:23 · 2345 阅读 · 0 评论 -
Unity(三十九):非运行状态下脚本播放动画、Animator Override Controller、RuntimeAnimatorController
非运行状态下脚本播放动画脚本using UnityEngine;namespace Example_01.Scripts{ [RequireComponent(typeof(Animator))] public class PlayAnim : MonoBehaviour { }}// Editorusing System.Linq;using Example_01.Scripts;using UnityEditor;using UnityEditor.Animations原创 2022-03-22 15:25:36 · 2989 阅读 · 0 评论 -
Unity(三十八):动画融合示例 - 上半身舞蹈、下半身奔跑
效果素材来源https://actorcore.reallusion.com/添加动画控制器层注意将图层权重调整为一致Dance和Run层配置方式相同,分别用 Avatar Mask 锁定下半身和上半身创建限制骨骼文件(Project视图中右键创建 Avatar Mask 文件)Run Avatar MaskDance Avatar Mask...原创 2022-03-22 11:38:15 · 4459 阅读 · 4 评论 -
Unity(三十七):3D模型动画、脚本控制模型骨骼IK动画
效果(左侧模型动画,右侧模型IK控制)模型动画下载及导入推荐模型动画下载链接地址https://actorcore.reallusion.com/Unity导入教程参见以下链接地址(需要科学上网)https://actorcore.reallusion.com/learn-and-support/my-software/unity/getting-started导入完成后模型相关查看配置模型动画控制器拖拽模型预设到视图中配置动画控制器(可自定义动画控制器)创建新的控制器原创 2022-03-21 15:42:08 · 4583 阅读 · 2 评论 -
Unity(三十六):场景随角色运动而运动
效果远景白云随人物运动而运动配置脚本using UnityEngine;public class ParallaxLayer : MonoBehaviour{ public Vector3 movementScale = Vector3.one; private Transform _camera; private void Awake() { _camera = Camera.main!.transform; }原创 2022-03-14 13:11:46 · 1728 阅读 · 0 评论 -
Unity(三十五):Tile Palette添加绘制画笔
效果创建、选择画笔脚本Editorusing UnityEditor;using UnityEditor.Tilemaps;using UnityEngine;// [CustomEditor(typeof(GridBrush))] // 在默认画笔上添加脚本[CustomEditor(typeof(CustomBrush))] // 在新创建的画笔上添加脚本public class CreateCustomBrushEditor : GridBrushEditor{ priv原创 2022-02-25 10:17:36 · 4140 阅读 · 0 评论 -
Unity(三十四):不规则区域点击事件
效果脚本游戏对象组件 Image PolygonCollider2D方式一:using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;[RequireComponent(typeof(PolygonCollider2D))]public class PolygonColliderPointerHandler : Image, IPointerClickHandler{ private Poly原创 2022-02-21 12:50:12 · 622 阅读 · 0 评论 -
Unity(三十三):ScrollView嵌套
效果布局脚本using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;public class CustomScrollRect : ScrollRect{ private CustomScrollRect _parent; private enum Direction { Horizontal, Vertical } // 滑动方原创 2022-02-21 12:05:13 · 2719 阅读 · 0 评论 -
Unity(三十二):Mask - 粒子裁剪、粒子和遮罩贴合
目录:粒子裁剪、粒子和遮罩贴合最终效果裁剪shader粒子配置shader粒子裁剪效果布局脚本粒子和遮罩贴合最终效果裁剪shader粒子配置shaderShader "Custom/Particle Clipping"{ Properties { _MinX ("Min X", float) = 0 _MinY ("Min Y", float) = 0 _MaxX ("Max X", float) = 0 _Ma原创 2022-02-20 09:55:55 · 3984 阅读 · 0 评论 -
Unity(三十一):自动布局组件「网格、水平、垂直布局」「宽高比、内容大小适配器」 - 物品栏实现
自动布局组件效果Hierarchy视图CanvasScroll View预设物(Equip)宽高比适配器 (Aspect Ratio Fitter)图集(Equip Atlas)创建图集脚本(获取图集中的图片Sprite)网格布局Grid Layout Group内容大小适配器 (Content Size Fitter)水平布局垂直布局效果Hierarchy视图CanvasScroll View预设物(Equip)Image游戏对象的图片需要从图集中获取,配置好预设物后配置Source原创 2022-02-15 10:08:24 · 3253 阅读 · 0 评论 -
Unity(三十):Canvas渲染模式 Render Mode
Render Mode : Screen Space - Overlay 模式 (默认)⚠️ Canvas将覆盖整个场景,并且永远覆盖在其他游戏对象之上,遮挡住场景中的其他游戏对象。⚠️ 不可修改 Rect Transform 组件的位置大小等。Render Mode : Screen Space - Camera 模式⚠️ Canvas将覆盖整个场景,Canvas将会在渲染摄像机的前方,其他游戏对象可在Canvas前方或者后方进行显示⚠️ 不可修改 Rect Transform 组件原创 2022-02-10 09:49:20 · 2830 阅读 · 0 评论 -
Unity(二十九):创建游戏引导场景(聚焦遮罩效果示例)附3D透视效果图
原理布局效果脚本Assets/Shaders/FocusMask.shader 绑定到创建的材质上(shader代码不太懂,有懂行的可以评论下,3Q)Shader "Custom/FocusMask"{ Properties { _Center("Center", Vector) = (0, 0, 0, 0) _Radius("Radius", float) = 1000 } SubShader {原创 2022-02-09 10:39:23 · 1661 阅读 · 0 评论 -
Unity(二十八):事件、渗透事件、键盘事件
效果事件事件在Canvas的GraphicRaycaster组件启用时生效1、2 的事件Assets/Scripts/Event_01_02.csusing UnityEngine;using UnityEngine.UI;public class Event_01_02 : MonoBehaviour{ public Image EventUI01; public Button EventUI02; private void Awake()原创 2022-02-07 13:51:14 · 1260 阅读 · 0 评论 -
Unity(二十七):ScrollRect组件 - 制作游戏摇杆
效果布局(由图一实现至图三的过程)摇杆脚本using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;public class GamePad : ScrollRect{ protected float radius = 0f; protected override void Start() { base.Start(); // 计算摇杆半径原创 2022-02-05 14:55:16 · 1367 阅读 · 1 评论 -
Unity(二十六):定时器 - 按照指定的时间间隔来调用函数
效果脚本using System.Collections;using UnityEngine;using UnityEngine.Events;public class CubeScript : MonoBehaviour{ #region 运行方式一 // private IEnumerator Start() // { // float interval = 3f, time = 10f; // yield return new S原创 2022-02-04 18:28:49 · 2103 阅读 · 1 评论 -
Unity(二十五):单例脚本、定时器
场景运行脚本using UnityEngine;using UnityEngine.SceneManagement;public class CanvasBehaviour : MonoBehaviour{ private void Awake() { // 初始化单例 Debug.Log($"当前场景名称 ---> {SceneManager.GetActiveScene().name}"); Debug.Log($"原创 2022-02-04 11:00:29 · 1129 阅读 · 0 评论 -
Unity(二十四):Attribute特性
AttributeAssets/Scripts/CubeScript.csusing UnityEngine;public class CubeScript : MonoBehaviour{ [HpMp("血量", 0, 100)] public int Hp; [HpMpAttribute("魔法值", 0, 100)] public int Mp;}public class HpMpAttribute : PropertyAttribute{ public r原创 2022-02-01 18:41:48 · 507 阅读 · 0 评论 -
Unity(二十三):ScriptableObject - 把数据存储到资源文件中
创建Asset资源 - ScriptableObjectAssets\Editor\Create_ScriptableObject.csusing System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEditor;public class Create_ScriptableObject{ [MenuItem("Assets/Create/CreateAsset", fal原创 2022-01-31 21:40:21 · 826 阅读 · 2 评论 -
Unity(二十二):序列化/反序列化 - ISerializationCallbackReceiver
系统提供的序列化方法using System;using System.Collections.Generic;using System.Linq;using UnityEditor;using UnityEngine;public class CubeScript : MonoBehaviour{ #region 系统提供的序列化方法 [Serializable] public class PersonInfo { public stri原创 2022-01-31 19:32:41 · 867 阅读 · 0 评论 -
Unity(二十一):生命周期入门
参考文档https://docs.unity.cn/cn/2020.3/ScriptReference/MonoBehaviour.html生命周期using System;using System.Collections;using System.Collections.Generic;using UnityEditor;using UnityEngine;public class ScriptLifeCycle : MonoBehaviour{ /// <summ原创 2022-01-30 09:12:12 · 400 阅读 · 0 评论 -
Unity(二十):创建自定义脚本模板
编辑器内部自定义脚本存储位置展示创建自己的自定义脚本using System.Collections.Generic;using System.IO;using System.Linq;using System.Text.RegularExpressions;using UnityEditor;using UnityEditor.ProjectWindowCallback;using UnityEngine;internal class CustomUnityEditor : Edi原创 2022-01-20 16:06:44 · 2508 阅读 · 0 评论 -
Unity(十九):获取编辑器内置样式和内置图标
内置样式using System.Collections.Generic;using System.Reflection;using UnityEditor;using UnityEngine;public class CustomEditor : EditorWindow{ private enum Status { style, icon } static Status status; #region EditorStyles原创 2022-01-17 18:49:25 · 2858 阅读 · 0 评论 -
Unity(十八):利用反射来执行Unity编辑器的源码方法
查看编辑器源码(工具:ILSpy)利用反射来执行图示Clear方法[MenuItem("CustomTools/LogText")]private static void LogText(){ Debug.Log("Hello Text ~~~");}// 利用反射来执行 LogEntries.Clear() 方法[MenuItem("CustomTools/ClearConsole")]private static void ClearConsole(){ Asse原创 2022-01-17 18:41:46 · 1374 阅读 · 0 评论 -
Unity(十七):拓展编辑器 - 重绘脚本面板、添加并自定义预览面板
重绘脚本面板using UnityEditor;using UnityEngine;namespace Scripts_03{ #region 自定义脚本面板 public class ExpandPlane : MonoBehaviour { public enum Sex { a = 1, b } public string str1;原创 2022-01-15 14:17:13 · 903 阅读 · 0 评论 -
Unity(十六):拓展编辑器 - 自定义绘制窗口并监听、自定义GameObject预览窗口示例
自定义绘制窗口并监听using UnityEditor;using UnityEngine;namespace Scripts_03.Editor{ #region EditorWindows窗口 public class ExpandWindow : EditorWindow, IHasCustomMenu { public void AddItemsToMenu(GenericMenu menu) {原创 2022-01-15 14:01:11 · 1005 阅读 · 0 评论 -
Unity(十五):拓展编辑器 - MenuItem菜单
菜单快捷键、菜单选中、菜单禁用效果源码using UnityEditor;using UnityEngine;public class ExpandMenu{ #region 禁用菜单(选择对象后可点击) // 禁用菜单 [MenuItem("Root/Menu/Button")] private static void MenuButton() { Debug.Log($"{Selection.activeObject}");原创 2022-01-12 17:19:20 · 956 阅读 · 0 评论 -
Unity(十四):拓展编辑器 - Scene面板、Game面板
目录Scene面板拓展布局(Editor模式)效果源码绘制标识(非Editor模式)效果源码禁用在Scene中选中对象(Editor模式)源码SelectionBase(Scene视图上的对象选中标识)(非Editor模式)效果源码Game面板(非Editor模式)拓展效果源码Scene面板拓展布局(Editor模式)效果源码// 常驻Scene辅助UI[InitializeOnLoadMethod]static void InitializeOnLoadMethod01(){ S原创 2022-01-07 16:59:20 · 2034 阅读 · 0 评论 -
Unity(十三):拓展编辑器 - Project面板、Hierarchy面板、Inspector面板
目录⚠️ Editor文件夹拓展Project面板拓展菜单效果注释源码拓展布局效果源码监听事件拓展Hierarchy面板拓展菜单效果源码修改编辑器默认的Image游戏对象效果源码拓展布局效果源码拓展Inspector面板拓展面板视图(布局)效果源码针对Unity内部已经重绘过的组件,拓展面板视图(布局)并保留Unity内部原有的绘制`不保留Unity内部原有的绘制` 效果`保留Unity内部原有的绘制` 效果源码禁用组件效果源码批量启用/禁用所选游戏对象的组件效果源码拓展菜单效果源码拓展菜单(获取当前游戏对原创 2022-01-07 11:19:30 · 4662 阅读 · 0 评论 -
Unity(十二):2D飞刀小游戏
展示项目源码地址(有详细注释)https://download.youkuaiyun.com/download/weixin_43526371/19953122原创 2021-07-01 10:09:44 · 464 阅读 · 2 评论 -
Unity(十一):引入ProGrids
manifest.json{ "dependencies": { "com.unity.progrids": "3.0.3-preview.6" }}原创 2021-06-08 21:26:26 · 2600 阅读 · 0 评论 -
Unity(十):3D角色移动跳跃
使用Cinemachine包管理器下载移动public class HeroControls : MonoBehaviour{ private Rigidbody _rigidbody; public float speed = 500f; void Start() { Physics.gravity = new Vector3(0, -300, 0); _rigidbody = GetComponent<Rigi原创 2021-05-31 10:19:37 · 9996 阅读 · 11 评论 -
Unity(九):Lerp线性插值、SmoothDamp
Mathf.Lerp/** * Mathf.Lerp 函数接受 3 个 float (from, to, 插值) * 参数: * 一个 float 参数表示要进行插值的起始值 * 另一个 float 参数表示要进行插值的结束值 * 最后一个 float 参数表示要进行插值的距离。 * 在此示例中: * 插值为 0.5,表示 50%。 * 如果为 0,则函数将返回“from”值; * 如果为 1,则函数将返回“to”值。 */原创 2021-05-31 10:11:30 · 1821 阅读 · 0 评论