
Unity3D
文章平均质量分 69
拿起键盘就是干
人生没有重来
展开
-
Unity InputSystem (二)
自定义类型继承类,并实现Process方法 ,并将 自定义Processors 注册进 InputSystem 中# endif#endif如果需要将自定义 Processors 用于 InputActionAssets 面板,需要为 Processors 创建 Editor 代码// edited.#endif。原创 2023-04-18 15:23:08 · 1279 阅读 · 0 评论 -
Unity InputSystem (一)
InputSystem 介绍原创 2023-04-18 15:18:43 · 931 阅读 · 0 评论 -
Oculus Avatar SDK
Oculus Avatar SDK 调研原创 2022-10-24 15:29:34 · 1674 阅读 · 0 评论 -
UnityXR SDK 的输入子系统
XR SDK 输入子系统XR SDK 输入子系统是 unityXR sdk 中 用于获取按钮、摇杆和设备跟踪信息的接口。是用户控制数据输入到 Unity 引擎的各种输入端点中的核心子系统。Unity 会将输入信息报告给 InputDevices 和InputSystem。XR 输入信息的同步分为以下步骤1.报告设备连接和断开2.填写链接设备的定义信息3.更新设备的状态4.响应相关事件和查询5.向Inputsystem注册设备布局报告设备链接和断开IUnityXRInputInterface原创 2022-05-26 10:26:32 · 1637 阅读 · 0 评论 -
Shader学习笔记(三)
Shader"MyShader/Demo2"{ Properties{ } SubShader{ Pass{ CGPROGRAM //顶点函数 这里只是声明了顶点函数的函数名#pragma vertex vert //片源函数 这里只是声明了片源函数的函数名#pragma fragment frag //POSITION (Shader中的语义说明,把顶点坐标传递给原创 2017-08-10 15:11:28 · 567 阅读 · 0 评论 -
Shader学习笔记(二)
//从这里指定Shader的名字,不要求跟文件名保持一致Shader "MyShader/Demo1"{ //属性 Properties{ _Color("Color",Color) = (1,1,1,1)//float4 _Vector("Vector",Vector)=(1,1,1,1)//float4 _Float("Float",Float)=0.1//float _原创 2017-08-10 14:27:25 · 488 阅读 · 0 评论 -
Shader学习笔记(一)
动机最近项目中经常遇到需要修改或者编写shader的需求,每次百度搞完都是懵懵懂懂,也大概查了一些文档,甚至里面的名词都没看懂。所以准备系统的学习入门一下。基本理解首先介绍Unity中两个很重要并且相当常见的组件1.MeshFilter 2.MeshRendererMeshFilter存储一个Mesh(网格,模型的网格,就是模型是由哪些三角面组成,组成一个什么杨的模型,三角面的原创 2017-08-09 15:49:46 · 1099 阅读 · 0 评论 -
浅谈MVC在Unity中的使用
首先我们先谈Unity3D本身的MonoBehavior脚本。MonoBehavior我们可以将他理解为界面层与界面直接沟通的上层脚本,在他底部的控制,逻辑,数据等有必要用MonoBehavior脚本么?如果在unity中我们进行开发时如果滥用MonoBehavior脚本,无疑会造成相当高的耦合度,并且当我们对程序进行迭代时会变得困难重重。所以在这里介绍MVC框架来对代码进行解耦。我们以创原创 2017-07-19 23:22:36 · 4535 阅读 · 1 评论 -
Shader学习笔记(四)
Unity Shader中的结构体用法:1.结构体的声明以关键字Struct开始,然后紧跟结构体的名字,然后是大括号和代码块,最后大括号后以分号结尾2.使用时“.引用结构体中的成员变量”相当于是将一些变量进行了封装,比如在shader代码中用到的语义对参数进行解释说明时,提前在结构体中封装好,将会使结构变得清晰,方便。代码演示// Upgrade NOTE: replace原创 2017-08-10 15:51:45 · 538 阅读 · 0 评论 -
Unity Shader-遮挡处理(X-Ray,遮挡描边,遮挡半透,遮挡溶解)
简介 第三人称游戏,我们经常会遇到相机被场景中的建筑物遮挡的情况。今天,本人就来研究一下相机被遮挡之后的处理。最简单的就是传说中的“鸵鸟法”,假装看不见,在一些游戏里面也有一些玩法设定,或者是本身遮挡较少,影响不大的情况,也可以直接不进行处理。当然,更好一些的遮挡处理,就是X光的效果。在人物被遮挡的部分会透过遮挡物,用一个其他的颜色渲染出来。《火炬之光》中就使用过这个效果:转载 2017-08-04 13:50:29 · 4414 阅读 · 0 评论 -
Shader学习笔记(五)
编写漫反射Shader代码什么是光照模型光照模型就是一个公式,使用这个公式来计算在某个点的光照效果漫反射 Diffuse = 直射光颜色* max(0,Cos夹角)(光和法线的夹角)当夹角为1是光是直射,小于零则是光照射不到的地方Shader"MyShader/Demo4"{ Properties{ _Diffuse("Diffuse",Color) = (1原创 2017-08-11 14:31:10 · 628 阅读 · 0 评论 -
A星寻路算法流程详解
1.简易地图如图所示简易地图,其中绿色方块的是起点,中间蓝色的障碍物,红色方块表示目的地,我们用一个二位数组来表示地图。2.寻路步骤1. 从起点 A 开始, 把它作为待处理的方格存入一个"开启列表", 开启列表就是一个等待检查方格 的列表.2. 寻找起点 A 周围可以到达的方格, 将它们放入"开启列表", 并设置它们的"父方格"为 A.3. 从"开启列表"中删除原创 2017-08-18 17:59:17 · 5386 阅读 · 1 评论 -
UGUI新手引导系统
相关链接:http://www.cnblogs.com/ybgame/p/3844315.html效果图:对于新手引导,主要分两种做法:需要使用shader的和不需要shader的,这里介绍的是后者1.屏蔽点击假如ImageA在ImageB前面,且ImageA完全覆盖ImageB,点击两者的重叠部分,ImageA会收到点击事件,而ImageB不会。对于UGUI来说,转载 2017-09-15 16:22:31 · 1856 阅读 · 1 评论 -
Unity中JsonUtility对List<T>和Dictionary<Key,Value>的序列化
Unity5.3从开始追加的JsonUtility,但是对于List 和Dictionary不能被直接序列化存储例如: 数据模型using UnityEngine;using System;using System.Collections.Generic;[Serializable]public class Enemy{ [SerializeField]原创 2017-10-20 10:08:12 · 17024 阅读 · 3 评论 -
Unity Shader-死亡溶解效果
简介游戏里面角色死亡的时候,有很多方式可以表现人物死亡效果。最简单粗暴的,播放完死亡动画直接删除或者直接Y轴逐渐降低,沉到地下;比较好的死亡效果就是今天要研究的这种效果-死亡溶解。个人印象比较深刻的就是《生化危机6》里面的克里斯篇,里面的功夫丧尸挂掉之后都是会有一个类似的死亡溶解效果。不过《生化危机6》这种3A大作的效果肯定不仅仅是一个shader能做出来的,还配合了粒子做出了消散以及转载 2017-07-10 18:21:31 · 2025 阅读 · 0 评论 -
加载读取CSV,txt逗号分格值文件
游戏开发中,经常会使用到很多配置文件。适当的利用配置文件,可以有效实现程序设计的灵活性,避免对程序功能的不断修改,降低程序开发人员与策划人员之间的沟通成本,提高效率。原创 2017-07-04 10:49:56 · 977 阅读 · 0 评论 -
unity清理内存
//清理内存(一般在切换场景时调用) public static void ClearMemory() { GC.Collect();//调用GC //清理加载的内存 Resources.UnloadUnusedAssets(); //频繁的调用GC会小号大量内存造成游戏系统卡顿,一般在切换场景时调用GC }原创 2017-03-11 20:47:16 · 2334 阅读 · 0 评论 -
WWW动态加载AssetBundle场景资源
IEnumerator LoadScene(string url) { WWW www = new WWW(url); yield return www; if (www.error!=null) { Debug.LogError(www.error); yield break;原创 2017-03-11 20:43:00 · 578 阅读 · 0 评论 -
Unity中调用安卓平台下的系统按键
if (Application.platform == RuntimePlatform.Android) { if (Input.GetKeyDown(KeyCode.Escape)) { //调用安卓平台下的系统按键 } }原创 2017-03-11 20:33:25 · 1523 阅读 · 0 评论 -
unity3d读取图片文件绘制在UIImage上
public void UpdateInfomation(string infomation){ Texture2D texture2d = new Texture2D(1, 1); texture2d.LoadImage(ReadPNG(infomation)); gameObject.GetComponent().sprite= Sprite.Create(texture2d, ne原创 2017-03-03 18:49:30 · 1589 阅读 · 0 评论 -
Unity3D中截图并修改图片像素重新保存至本地
第一次开始写博客,想把自己在平时遇到的一点小问题记录下来,也方便其他人参考最近在用Unity3D做一个绿幕抠像的应用(囧一个,不要问我为什么用unity3D做),过程中需要对图片进行一些处理。首先你需要一个System.Drawing.dll。对image进行操作,这个dll文件在unity目录下可以搜到,如果找不到在下方下载。说明我的unity版本是5.3.5,如果dll错误,或者是版原创 2017-03-03 17:38:22 · 6060 阅读 · 0 评论 -
Unity下安卓,Ios,PC平台下的路径读取
Application.Platfrom==RuntimePlatfrom.Androidwindows 下 StreamingAssets 读取路径"file///"+Application.StreamingassetsPath+"/config.txt";安卓与Ios平台下Application.StreamingAssetPath+"config.t原创 2017-03-11 20:22:19 · 2346 阅读 · 0 评论 -
unity3d检测鼠标滑动停止事件
前几天项目中需要一个检测鼠标滑动停止的事件,发现Unity中没有,只有拖动停止等事件,所以在这里上传一个,如果有问题希望大神能指教一下。 private Action onScrollFinish; private bool isScroll = false; private bool isStartCoroutine = false; // Use this for原创 2017-03-03 18:14:10 · 4318 阅读 · 0 评论 -
Unity3D ScrollView滑动优化
unity中 scrollview在游戏任务,物品列表中是很常见的使用,但是在使用过程中会出现很多问题,当有1000条item同时一起加载进场景中会瞬间造成unity死机。这里对scrollview做了一个简单的优化,会根据需要动态的平滑加载item直接附上工程链接http://pan.baidu.com/s/1bJUkmq原创 2017-03-03 18:32:21 · 3216 阅读 · 1 评论 -
多重血条效果
描述:1.当受到伤害较小时,出现“残血”效果2.当受到伤害较大时,出现“流水”效果血条由4部分组成1.剩余学条数2.当前血条剩余血量image3.过度血条image4.下一血条显示颜色 image注意:这里的血条显示image 需要将Image.Type设置为Filled,fill Method设置为水平,using UnityEngine;u原创 2017-06-19 14:53:32 · 1456 阅读 · 1 评论 -
Unity 脚本之间的消息传递,事件管理
在游戏中发生了一个事件,我们如何把这个时间通知给其他GameObject:比如游戏中发生了爆炸,我们需要在一定范围内的GameObject都感知到这一事件。有的时候,我们希望摄像机以外的物体不要接到我们这一事件的通知。游戏中丰富多彩的世界正是由通信机制构成的using System.Collections;using System.Collections.Generic;using原创 2017-06-29 15:34:43 · 1979 阅读 · 0 评论 -
UGUI鼠标事件绑定+鼠标长按
unity中鼠标事件的监听方式有很多,一般主要使用的是继承EventTrigger实现EventTrigger中给我们提供了17种触发事件,这里不一一赘述,其中在游戏里经常使用的点击长按则没有。比如在商店中购买,在背包中出售,技能加点,点击同一按钮时需要对按钮进行长按处理,来快速增加或减少。在unity 的ngui中有onpressed回调可以使用,但是在ugui中没有这种功能,就需要自己原创 2017-07-03 18:49:02 · 3030 阅读 · 0 评论 -
粒子显示在UI前方
参考链接:http://www.xuanyusong.com/archives/3278Canvas的Render Mode的三种模式比较:http://www.manew.com/thread-90759-1-1.html?_dsign=b522d837Canvas组件中的Render Mode:1.Screen Space - Overlay此模式不需要UI摄像转载 2017-06-19 09:42:35 · 2512 阅读 · 0 评论 -
C#单例与继承MonoBehaviour的单例
单例模式是我们最常用的一种设计模式。主要优点:1、提供了对唯一实例的受控访问。2、由于在系统内存中只存在一个对象,因此可以节约系统资源,对于一些需要频繁创建和销毁的对象单例模式无疑可以提高系统的性能。3、允许可变数目的实例。 主要缺点:1、由于单利模式中没有抽象层,因此单例类的扩展有很大的困难。2、单例类的职责过重,在一定程度上违原创 2017-06-20 10:02:36 · 6789 阅读 · 3 评论 -
对象池与池管理
Unity编程标准导引-3.4 Unity中的对象池 本节通过一个简单的射击子弹的示例来介绍Transform的用法。子弹射击本身很容易制作,只要制作一个子弹Prefab,再做一个发生器,使用发生器控制按频率产生子弹,即克隆子弹Prefab,然后为每个子弹写上运动逻辑就可以了。这本该是很简单的事情。不过问题来了,发射出去后的子弹如何处理?直接Destroy吗?这太浪费了,要知道Unity转载 2017-06-29 15:29:41 · 853 阅读 · 0 评论 -
Unity3D换装系统原理
在unity中实现换装的方式主要有三种:1.换材质或换贴图2.显示或隐藏模型3.合并网格第二种主要用于换装备,但当涉及到“本质”上的换装时(例如猪脚是普通人,发动技能后左手变成机械手),就行不通了。因此,有必要学习一下合并网格。而官方的换装demo使用的是第三种。由于前两种比较简单,所以学习换装系统的重点就是第三种了。1、角色模型制作 Unit转载 2017-05-05 16:09:42 · 1460 阅读 · 1 评论