Unity3D
文章平均质量分 67
BackkomCoder
改变!改变!!改变!!!
展开
-
UGUI 不规则碰撞检测,支持不规则碰撞区域编辑
using UnityEngine;using UnityEngine.UI;[RequireComponent(typeof(PolygonCollider2D))]public class PolygonImage : Image{ private PolygonCollider2D mCollider; protected override void Awake()...原创 2019-11-26 17:13:26 · 701 阅读 · 0 评论 -
【Unity3D】获取WWW下载的进度
首先创建一个WWWObj的类using UnityEngine;using System.Collections;public class WWWOBJ : MonoBehaviour { private WWW www; public string LoadPro; public WWWOBJ(string url) { www = ...转载 2019-11-04 13:00:56 · 750 阅读 · 0 评论 -
Unity LayerMask 的位运算
Unity的LayerUnity是用 int32来表示32个Layer层,int32用二进制来表示一共有32位。0000 0000 0000 0000 0000 0000 0000 000031 0开启layer 2LayerMa...转载 2019-11-04 13:00:48 · 508 阅读 · 0 评论 -
Unity对于手柄的支持
今天来谈谈关于Unity手柄的支持一、首先我们先要搞清楚从哪开始进行控制:二、接着来看看它里面的属性:Name:【按键名】该键的名称,可以在脚本编程中直接引用他。比如:Input.GetButtonDown(“Jump”);Descriptive Name:【描述名】在游戏的独立机构中的配置对话框中,当控制值为正时候所显示的名称。默认空白。Negative Descri...转载 2019-11-03 15:13:04 · 4264 阅读 · 0 评论 -
Unity中用Shader实现镜子效果
做项目的时候要用到镜子,折腾了一下午,发现做镜子还是蛮快的,总结了一下网上的教程,大致有这么几种做法:1、使用反射探针(Reflection Probe)2、使用Render Texture3、使用Shader着色器,我发现这种方法步骤比较少,而且重复使用起来也方便下面就介绍一下这个方法,以及期间我踩过的坑;官方的教程在这里:MirrorReflection4(我之所以说比较简...转载 2019-11-03 15:12:53 · 2666 阅读 · 1 评论 -
[Unity 3D] 使用Audio Mixer分别控制主音量、背景音乐和其他音效
前言在游戏中,通常我们需要控制整个游戏的主音量(全局音量),并且单独控制背景音乐和其他音效(攻击、爆炸之类)的音量,这时我们可以用Audio Mixer来解决。如果文章中有哪些地方写的不对, 欢迎指出。提醒在这篇教程中我将重新创建一个简单的工程来给大家演示,并且我当前使用的Unity版本为2018.1.1f1。本文并非零基础教程,但是写了有点太详细,且有大约30张图,所以...转载 2019-11-03 15:12:33 · 2227 阅读 · 2 评论 -
Unity角色控制器CharacterController
角色控制器(CharacterController):首先,角色控制器没有碰撞效果,这是和刚体的区别,不像刚体可以给其力如果想使人物移动,直接复制官方文本中的CharacterController下的Move()方法,前台添加“CharacterController”这个组件。参数:Slope Limit爬坡限制:小于等于此角度可以上坡Step Offset台阶高度:Skin ...转载 2019-11-03 15:12:15 · 1568 阅读 · 0 评论 -
Unity 动态添加烘焙贴图
场景中对预设体进行烘焙贴图后,然后删掉场景中的预设体,接着再通过代码实例化这个预设体或者直接拖一个预设体进入一个场景,都会发现场景光照信息丢失光照信息丢失的主要原因是:解决这个问题的办法如下:先准备一个场景,如下:上面的红色物体全部勾选为静态(static),蓝色物体作为参照不勾选静态对lighting进行参数设置经过上面准备工作做好后,开始...转载 2019-11-03 15:12:04 · 2843 阅读 · 0 评论 -
Unity游戏的GC(garbage collection)优化
引言游戏运行时使用内存来存储数据,当这些数据不再被使用时,存储这些数据的内存被释放以便于之后这些内存可以被复用。垃圾(Garbage )是存储无用数据的内存的术语,GC(Garbage Collection 垃圾回收)是使这些内存可以再次使用的过程。GC是Unity管理内存的一部分,我们的游戏可能因为GC负担过重而表现不佳,所以GC是引起性能问题的一个常见原因。在这篇文章中,我们将介绍...转载 2019-11-03 15:11:41 · 637 阅读 · 0 评论 -
Unity PlayerPrefs学习
我们可以使用unity自带的PlayerPrefs存储数据。那么这个PlayerPrefs如何使用呢?官方的API介绍了:1、PlayerPrefs可以理解为持久化储存,还可以理解为游戏存档, 玩RPG游戏的时候肯定会有游戏存档 存档中就会记录玩家以前游戏的过程,这些都是以数据的形式存在PlayerPrefs中的。2、在Mac OS X上PlayerPrefs存储在...原创 2019-11-02 19:55:50 · 406 阅读 · 0 评论 -
Unity3D 多平台_预编译相关宏定义
预编译原文地址:http://docs.unity3d.com/Documentation/Manual/PlatformDependentCompilation.html平台定义 UNITY_EDITOR 编辑器调用。 UNITY_STANDALONE_OSX 专门为Mac OS(包括Universal,PPC和Intelarchitectures)平...原创 2019-11-02 19:30:18 · 264 阅读 · 0 评论 -
Unity Editor 基础篇(六):Property Drawers自定义属性绘图
源地址:http://gad.qq.com/article/detail/33468本篇文章会给大家介绍下Property Drawers自定义属性绘图,创建一个新的工程或者用上一篇的工程都可以,然后在Scripts文件夹中创建两个C#脚本,分别命名为:“Persion.cs”和“ShowPersionInfo.cs”,如下图所示:然后在Editor文件夹中创建一个名为“PersionProper...转载 2018-05-07 14:05:59 · 1728 阅读 · 0 评论 -
Unity3D优化技术
Unity3D影响性能的因素CPUa.过多的draw callb.复杂的脚本或者物理模拟GPUa.顶点处理: <1>过多的顶点 <2>过多的逐顶点计算b.片元处理: <1>过多的片元(既可能是由于分辨率造成的,也可能是由于overdraw(即一个像素被绘制多次)造成的) <2>...原创 2019-03-05 22:04:44 · 404 阅读 · 0 评论 -
基于Unity3D ScrollRect的游戏摇杆实现
ScrollRect是UGUI提供的基础拖动组件,给它的Content绑定一个滑块就能工作了。如图代码如下:using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;public class Example : ScrollRect { protected float mRadius ...原创 2018-12-25 15:41:48 · 894 阅读 · 0 评论 -
基于Unity3D的Debug系统
项目一旦发布以后,一定要把日志关闭掉,因为它会有一些额外的开销。如下代码可以在初始化的位置设置条件编译,在非编译模式下运行时,则关闭掉所有日志的输出:#if !UNITY_EDITOR Debug.unityLogger.logEnabled = false;#endif在移动平台,保存和提取日志很不方便,所以可以监听错误以及异常,并且及时将其打印在屏幕上。监听Ap...原创 2018-12-20 17:41:35 · 1408 阅读 · 0 评论 -
基于Unity3D协程的不依赖脚本的定时器
协程任务是可以做定时器的,但是有个最大的问题,那就是必须用在脚本中,但是我们游戏的逻辑大部分都在C#代码中,所有需要封装一个不依赖与脚本实现的定时器。代码如下:using System.Collections;using UnityEngine;using UnityEngine.Events;public class WaitTimeManager { class Ta...原创 2018-12-20 16:01:03 · 726 阅读 · 0 评论 -
Unity Editor 基础篇(八):Decorator Drawers
源地址:http://gad.qq.com/article/detail/33471创建一个新的工程或者用上一篇的工程都可以(克森用的是原来的工程,因为这一篇的内容和上一篇的内容很类似),然后在Scripts文件夹中创建两个C#脚本,分别命名为:“DrawerImageAttribute.cs”和“Test.cs”,如下图所示:然后在Editor文件夹中创建一个名为“DrawerImageAttr...转载 2018-05-07 14:22:25 · 368 阅读 · 0 评论 -
Unity Editor 基础篇(七):Property Attributes
源地址:http://gad.qq.com/article/detail/33469大家还记得Unity Editor 基础篇(一):Build-In Attribute(内置属性)里所说的东西吗?如下图所示:创建一个新的工程或者用上一篇的工程都可以(克森用的是原来的工程),然后在Scripts文件夹中创建两个C#脚本,分别命名为:“ReadOnlyAttribute.cs”和“Test.cs”,...转载 2018-05-07 14:15:48 · 647 阅读 · 0 评论 -
Unity3D组件——AudioSource
原文地址:http://www.cnblogs.com/driftingclouds/p/6172013.html音源组件(AudioSource)音源是场景中在某个位置的发声装置,好像一个喇叭。它播放着音频片段 (Audio Clip)。发出的声音将输出到声音监听器(audio listener),或者声音混淆器(audio mixer)。稍后再说混淆器,一般相机会默认自带一个Aud...转载 2019-03-21 22:53:22 · 8554 阅读 · 0 评论 -
基于Unity3D的绘画功能实现
using UnityEngine;using System.Collections;/// <summary>/// 鼠标画图功能/// </summary>public class Paint : MonoBehaviour{ //画笔颜色 public Color paintColor = Color.red; //画笔大小 ...原创 2019-03-27 15:43:18 · 3817 阅读 · 0 评论 -
基于Unity3D的打开Windows软键盘的功能的实现
在Unity的开发中,会经常遇到需要打开一些外部应用的需求,今天我们用俩种方法来实现该功能。(已打开Windows的软键盘为例)。原创 2017-11-15 16:41:52 · 3308 阅读 · 4 评论 -
基于Unity3D的场景管理器
场景基类using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.SceneManagement;public class BaseScene{ //加载类型 public LoadSceneType loadSceneType; ...原创 2019-10-06 14:28:19 · 868 阅读 · 0 评论 -
Unity 自动识别语音设备
using System.Collections;using System.Collections.Generic;using UnityEngine;public class Test : MonoBehaviour{private static int InputDeviceID = 0;string currentDeviceName = "";// Start is call...原创 2019-09-21 00:51:36 · 251 阅读 · 0 评论 -
VR 重置空间位置和朝向
using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.XR;public class VRTest : MonoBehaviour{ // Start is called before the first frame update voi...原创 2019-09-16 22:32:47 · 2336 阅读 · 0 评论 -
unity摄像机带碰撞检测 摄像机碰到带碰撞物体自动拉近
using UnityEngine;using System.Collections;public class CameraController : MonoBehaviour {public Transform target ; //目标物体public LayerMask mask;//layer层 //只检测在mask 包含的层里的碰撞体是否会遮挡视线...原创 2019-10-06 14:29:28 · 5088 阅读 · 0 评论 -
UI渲染在3D物体前面
在VR开发中,经常需要把UI渲染在相机的最前方,有2种方式可以实现1.使用单独的相机渲染UI层,但有时由于VRSDK的限制,该方法无法使用,则需要第二种方法2.自己编写shader,改变其渲染队列,使其在其他物体渲染之后,在渲染UI,代码如下:C#代码:using UnityEngine;using UnityEngine.UI;public class UIOverlay...原创 2019-07-29 22:44:21 · 565 阅读 · 0 评论 -
物体围绕着target y轴向旋转,target y轴向多少度,该物体多少度
物体围绕着target y轴向旋转,target y轴向多少度,该物体多少度using UnityEngine;using System.Collections;public class Test : MonoBehaviour{ public Transform target; private float lastRotY; private void Upda...原创 2019-07-18 16:48:18 · 184 阅读 · 0 评论 -
Unity中Animator动态添加AnimationClip
AnimatorController中一下加载大量动画,会使游戏内存增大很多,所以想动态增加AnimatorController中的动画,达到使用那个动画就加载对应动画的功能。研究后发现可以通过AnimatorOverrideController实现。通过替换动画的方式,用需要播放的动画将控制器中指定的一个动画替换,这样能间接达到动态加载的功能using UnityEngine;publ...转载 2019-05-06 11:43:02 · 4754 阅读 · 1 评论 -
Unity Editor 基础篇(五):Gizmos辅助线框
源地址:http://gad.qq.com/article/detail/33466在之前的项目或者新建的项目中创建如下目录结构:如果是新的项目,只需创建Scripts和Gizmos就好。该文章用的到API: 传送门:http://www.ceeger.com/Script/Gizmos/Gizmos.htmlPS:这篇文章相对简单,但克森还是会细致的介绍一遍,因为这篇文章也是该系列的一部分...转载 2018-05-07 13:54:56 · 3576 阅读 · 0 评论 -
Unity Editor 基础篇(三):自定义窗口
源地址:http://gad.qq.com/article/detail/32207终极目标利用学到的东西制作自己的工具(自定义的窗口、Inspector、菜单、插件等等)。准备工作在之前的项目中,找到 Editor 文件夹,然后创建一个新的 C# 脚本,命名为“MyFirstWindow”,然后双击打开脚本,添加如下代码:using System.Collections; using Syst...转载 2018-05-07 13:43:48 · 548 阅读 · 0 评论 -
基于Unity3D的相机功能的实现(一)——VR相机
Unity自带陀螺仪功能,今天就利用陀螺仪实现一个VR相机功能。原创 2017-11-04 14:37:41 · 3729 阅读 · 1 评论 -
基于Unity3D的对象池的实现
对象池在游戏优化中起着很重要的作用,今天我们来实现一个简单的对象池功能。1.打开Unity,创建3个C#脚本,分别为GameController.cs(游戏控制器),ObjectPool.cs(对象池),CubeMgr.cs(延迟销毁物体),代码分别如下:GameController.cs用于游戏的控制器,点击鼠标左键,生成Cube。 using System.Collecti...原创 2017-11-06 22:10:01 · 806 阅读 · 2 评论 -
Unity3D实用脚本(二)—— 检查场景中用到的资源
在项目的开发过程中,经常需要检查场景中所用到的资源,例如Textures,Materials,Meshs等。原创 2017-12-10 22:43:39 · 1333 阅读 · 0 评论 -
Unity3D实用脚本(一)—— 导出场景中的3D资源到本地为.obj格式
在项目开发过程中,有时我们需要将项目中的3D模型分离出来,并保存到本地。我们今天就来实现这一功能,可实现如下功能:1.将所有选中的MeshFilters导出成分离的OBJ;2.将整个选择的资源导出到单个OBJ;3.将每个被选中资源成分离的OBJ。原创 2017-12-10 22:23:59 · 2161 阅读 · 0 评论 -
基于Unity3D的相机功能的实现(八)—— 收藏篇
看到的不错的相机代码,分享一下。原创 2017-12-10 18:31:23 · 1118 阅读 · 0 评论 -
基于Unity3D的相机功能的实现(七)—— 综合篇
此篇把之前的相机功能进行了汇总,通过一个枚举类型进行切换。功能如下:followInching:跟踪加缓动效果freeInching:自由加缓动效果onlyFollow:仅跟踪视角onlyFree:仅自由视角none:正常相机原创 2017-12-10 18:19:59 · 737 阅读 · 0 评论 -
基于Unity3D的相机功能的实现(六)—— 上帝视角(王者荣耀视角)
在MOBA游戏中,上帝视角是一个很实用的功能。原创 2017-12-10 16:40:33 · 4173 阅读 · 0 评论 -
基于Unity3D的相机功能的实现(四)——第三人称相机(TPS)
在游戏开发中,第三人称相机(FPS)是一个很常见的需求,我们今天来实现该功能。这种相机跟随,是第三人称角度看向对象的,也就是一直看向对象的后面,如一直显示玩家的后背。原创 2017-11-26 20:40:01 · 2834 阅读 · 1 评论 -
Unity 定时开启/关闭外部应用
原帖地址:https://www.cnblogs.com/wuzhang/p/wuzhang20151031.html 自从加入工作的队伍里,博客都荒废了,今天周末,难得清静,写篇博客!刚才看到了Process类,随手写了个小demo.给大家分享下!首先大家要对Process类有一些简单的了解,参考资料:https://msdn.microsoft.com/zh-cn/libra转载 2017-11-15 17:47:00 · 841 阅读 · 1 评论 -
基于Unity3D的异步加载场景的实现
在游戏中,异步加载场景是个特别有用的切换场景方式,尤其是对于资源比较大的场景。今天,我们就来实现一个异步加载场景功能。原创 2017-11-05 22:34:19 · 579 阅读 · 0 评论