
unity-开发
文章平均质量分 63
天涯过客TYGK
我很平凡,追求一份平凡的生活,活出一颗平凡的心。
展开
-
unity Excel配置表导出工具
unity中,Excel格式文件转json并在运行中加载使用原创 2023-01-11 18:45:25 · 1162 阅读 · 0 评论 -
UGUI Text宽度自适应并设置背景
文本宽度自适应原创 2023-01-03 11:31:01 · 531 阅读 · 0 评论 -
Xlua hotfix C#案例
xlua 热更新c#代码,常规方法使用测试原创 2022-07-07 15:33:18 · 1439 阅读 · 0 评论 -
Unity 托管代码剥离
IOS 打包,ARM64 branch out of range转载 2022-06-21 18:09:58 · 2785 阅读 · 0 评论 -
unity AB包体大小优化
今天主要测试Texture的不同设置,对打出来AB包的影响,测试素材为6张图片其中的 Texture,MTexture_Alpha是相同的图片,只是一个开启了透明通道,一个未开启,BigImage是一张不带透明通道的图片Texture_S,MTexture_Alpha_S,BigImage_S 是上面3张图片,采用TinyPNG工具压缩后的图片。首先,采用默认default格式进行AB打包...原创 2021-08-22 15:54:23 · 3426 阅读 · 0 评论 -
unity 定点着色器输入值
unity shader有3中类型,分别是固定着色器,顶点片段着色器和表面着色器,固定着色器固定功能着色器为固定功能渲染管线的具体表现,功能较简单兼容比较老的机器基本都快被淘汰了。表面着色器是对定点片源着色器的封装,封装了好多创建的光照操作,降低shader的书写门槛,但是...原创 2021-07-11 16:42:24 · 422 阅读 · 3 评论 -
TexturePacker 图集生成工具
TexturePacker 可以通过命令行方式,批量生成图集,TexturePacker相关命令可以参考 https://blog.youkuaiyun.com/u014065445/article/details/54289787unity中使用的方式是,通过C#中的Process类,创建一个独立进程,执行命令行脚本,完成图集生成和切分Mac平台的shell脚本./TexturePacker \--sheet $3/$1_{n}.png \--data $3/$1_{n}.txt $2 \--forma原创 2020-11-20 17:34:55 · 1309 阅读 · 0 评论 -
MMORPG游戏的人工智能(AI)和行为树设计
什么是MMORPG的AI? 玩MMORPG的地球人都知道,MMORPG的AI实在是弱智的要死。即使是在WOW这样顶级的游戏中,AI也是有限得掉渣,绝大部分NPC都像一个木桩一样,哪怕是精心设计的BOSS也就只有一些战斗AI。尽管有很多人把动画,或者自动寻路之类的功能也叫做AI,但是我们并不讨论这种基本功能。我们讨论的AI是指,可以使得NPC好像一个真人一样活动的AI。拥有这样AI的NPC看起来转载 2016-08-02 19:55:17 · 8701 阅读 · 0 评论 -
UGUI实现打字机效果
1 UGUI实现打字机效果创建打字特效控制的脚本,将该脚本挂载都含有Text组件的对象上面,通过该脚本控制Text文本框的文字,以打字机的效果显示文字。 脚本using UnityEngine;using System.Collections;using UnityEngine.UI;public class TypewriterEffect : MonoBehaviour { pu原创 2017-01-20 11:50:48 · 24080 阅读 · 8 评论 -
UGUI 制作血条,3d物体跟随移动
今天学习一下如何实现UGUI 2dUI跟随3d物体移动的效果 创建cube,创建Image。image作为血条,跟随cube移动 在cube上面添加脚本using UnityEngine;using System.Collections;public class FlowTest : MonoBehaviour { public RectTransform rectBloodPos;原创 2016-11-07 19:35:31 · 5840 阅读 · 0 评论 -
UGUI Image的2d碰撞检测
2d的碰撞检测和3d的碰撞检测比较相似,发生碰撞的两个对象至少有一个带有刚体组件,两个对象都要有碰撞器,和3d不同之处在于2d碰撞的刚体使用的是rigidbody2D,碰撞器使用的是BoxCollider2D。操作示例: 1创建2个Image,然后给它们都挂载BoxCollider2D组件,随便选择一个挂载rigidbody2D组件。 2 调节BoxCollider2D的大小,使其与图片的原创 2017-03-14 12:11:51 · 13803 阅读 · 1 评论 -
unity 使用UGUI创建图集
听说UGUI使用比较方便,今天特地来学习一下。用过NGUI的都知道,在2D界面添加图片背景,是不可以直接将资源里面的图片拖给对象做为背景的,需要先将图片资源打成图集,然后从图集里面去选择自己的图标。但是在UGUI里面,如何创建图集呢?如何在2D界面使用图片资源?这个问题困扰了我好久,但还是被我解决了。 UGUI是unity4.6之后新添加的功能,使用方法和NGUI十分相似,在NGUI里面我们可以通原创 2016-05-24 17:55:48 · 16199 阅读 · 1 评论 -
socket通信简介
游戏一般是基于若网连接的,多采用socket进行服务端与客户端的通信,今天我们了解一下C# 的socket知识。1、什么是Socket socket 实际上是网络通信端点的一种抽象,它提供了一种发送和接收数据的机制。网络通信,归根结底是网络端点间的通信,通过socket,用户所开发的应用程序可以通过网络与其他socket应用程序通信。 从技术观点看,也可以将socket通信理解为网络进程间的通信原创 2016-04-11 10:57:18 · 3403 阅读 · 0 评论 -
unity 实现宠物跟随移动
简单的跟随移动玩家移动控制脚本using System.Collections;using System.Collections.Generic;using UnityEngine;public class PlayerMove : MonoBehaviour { // Use this for initialization void Start () { } // U原创 2016-12-29 18:10:35 · 12232 阅读 · 2 评论 -
unity md5加密
using System.Collections; using System.Collections.Generic; using UnityEngine;public class Md5Test : MonoBehaviour {public string fileName="1.txt";//streamingAssets 文件夹下面的文件名称public string testSting原创 2016-12-26 19:04:30 · 6886 阅读 · 1 评论 -
shader 什么是UV
什么是UV? 对于三维模型,有两个最重要的坐标系统,一是顶点的位置(X,Y,Z)坐标,另一个就是UV坐标。什么是UV?简单的说,就是贴图影射到模型表面的依据。 完整的说,其实应该是UVW(因为XYZ已经用过了,所以另选三个字母表示)。U和V分别是图片在显示器水平、垂直方向上的坐标,取值一般都是0~1,也 就是(水平方向的第U个像素/图片宽度,垂直方向的第V个像素/图片高度)。那W呢?贴图是二维的,转载 2016-11-23 17:54:02 · 12353 阅读 · 3 评论 -
UGUI scrollView基本操作
滚动条 scrollRect,Mask,GridLayoutScrollRect基本属性 content 需要滑动的对象 horizontal/vertical 滚动方式 水平/垂直 moveMentType 移动类型 unrestricted /Elastic/clamped 自由的/有弹性的/夹紧的 inertial 惯性值Mask控制scroll下面的字对象超出scroll的范围,不进原创 2017-05-16 10:29:42 · 12167 阅读 · 2 评论 -
UGUI scrollView循环滚动
创建scrollview,设置滑动方向为垂直方向 在该对象上添加脚本scrollMove 在scrollView下面创建一个空的UI对象grid,不需要挂在gridLayout组件。 创建一个预质体,下面添加一个Text文本的子对象 cood:using UnityEngine;using UnityEngine.UI;using System.Collections;using原创 2017-05-14 21:08:42 · 11775 阅读 · 2 评论 -
点击屏幕,关闭弹框
using System.Collections;using System.Collections.Generic;using UnityEngine;public class AutoClosePanel : MonoBehaviour { public RectTransform rectTransform; public Camera uiCamera; ...原创 2019-08-17 17:47:26 · 519 阅读 · 1 评论 -
UGUI实现文字两端对齐
参考博客https://blog.youkuaiyun.com/feiyuezouni/article/details/85216983在上述参考博客中,详尽讲解了Text文本显示字符串时候,文字间隔调整的原则,这里的代码也是在它的基础上进行修改出来的。两端对齐代码using System.Collections;using System.Collections.Generic;using Un...原创 2019-01-25 13:32:33 · 3123 阅读 · 5 评论 -
txt文件解析简易框架
构建数据表基类using System.Collections;using System.Collections.Generic;using UnityEngine;using System.IO;public class BaseTable { protected string fileDirPath; protected string fileName; prote原创 2017-10-17 15:23:35 · 1193 阅读 · 0 评论 -
unity 转盘抽奖
需求 转盘速度开始速度较慢,然后逐渐加速,达到最大速度保持一段时间,然后减速,保证指针最终可以选择到制定角度。核心内容 1 计算转盘选择角度,使转盘最终可以在制定角度停止 首先需要获取旋转终点的坐标,通过坐标获取目标方向的向量 在单位圆上任意一点的坐标可以表示为(cos(angle),sin(angle)) 目标点的方向向量为Vector3 calculateDir(float endAn原创 2017-09-21 18:03:55 · 5714 阅读 · 1 评论 -
unity UGUI实现卡片椭圆方向滚动
搭建简单的场景 运行效果 控制脚本:using UnityEngine;using System.Collections;using UnityEngine.UI;using DG.Tweening;public class CardMove : MonoBehaviour { GameObject[] sprites; int halfSize; Vector原创 2017-06-22 11:54:31 · 6210 阅读 · 2 评论 -
DoTween 控制UGUI tween动画
NGUI有自带的tween动画,但是UGUI却没有,如果需要UGUI实现tween动画效果,需要使用插件DoTween. DoTween使用之前,需要添加引用 using DG.Tweening; 使用方式: 首先获取对象的RectTransform实例rectTransform 基本的移动:rectTransform.DOMove (new Vector2(100,100),1f);原创 2017-06-22 11:14:13 · 24340 阅读 · 0 评论 -
unity xml反序列化为数据类
xml在unity中,经常用来保存本地数据,我们在处理xml文件的时候,通常是先创建一个xml对应的数据类,然后将xml解析的每一个element封装成对象,在保存的list或者diction集合中。解析xml的过程大部分都是相同的,但是不同的数据类,对应的字段,相差较大,所以之前在解析的时候,都是单独解析的。 最近闲来无事,就讲xml解析的方法进行了加工,利用c#的反射技术和泛型的特点,创建一个原创 2017-06-29 17:28:43 · 1703 阅读 · 0 评论 -
unity sqlite数据库操作
首先在项目中添加两个动态链接库Mono.Data.Sqlite.dll和System.Data.dll创建数据库管理脚本,该脚本用来直接操作数据库的操作,可以看作是对数据库操作的sql语句的封装。using UnityEngine;using System.Data;using System;using System.Collections;using Mono.Data.Sqlite;pu原创 2016-12-08 17:06:23 · 2187 阅读 · 1 评论 -
unity 物体拖拽移动
3D物体拖拽移动 1 获取鼠标的屏幕坐标 2 将鼠标坐标与相机y轴方向的值,转换为3d坐标,并将改制赋给跟随鼠标移动对象void Update () { // Vector3 vp = Camera.main.ScreenToViewportPoint(Input.mousePosition + new Vector3(0, 0, Camera.main.farClipPlane原创 2016-11-20 22:47:41 · 7248 阅读 · 0 评论 -
NGUI ScrollView 回弹控制
最近在处理项目时,遇到一个棘手的问题,搞了好久终于把他弄出来了。项目要求实现一个功能,就是当在ScrollView滚动到终点的时候,控制ScrollView回弹到初始的位置,比如列表有14条数据,当滑动到第14条数据的时候,需要自动返回到第一条数据的位置。在功能实现的时候,主要使用了ScrollView的监听事件,配合ScrollView移动控制的类SpringPanel完成的。首先我们了解一下Sc原创 2016-07-24 12:44:24 · 6661 阅读 · 0 评论 -
Unity 优化1
我认为unity的优化可以从三方面入手,分别是资源优化、性能优化和内存优化,由于每一方面的优化内容都比较多,我在这里主要分析一下性能优化。系统性能的好与差主要是通过系统的相应时间来衡量的,如果系统的响应时间超过500毫秒,用户就会感觉到明显的卡顿。在unity中,产生卡顿的原因有多种情况, 首先是在打开NGUI界面的时候,容易产生卡顿。因为打开UI时,通过Resources.Load加载资源的原创 2016-06-27 08:33:33 · 777 阅读 · 0 评论 -
NGUI poplist使用
在NGUI中制作下来菜单,需要添加UIPopupList脚本,使用过程 1、创建一个sprite,右击Attach一个boxClider,然后右击添加PopupLis 2、在Inspector面板中的PopupLis中,找到options项,添加列表内容,每一行内容,对应列表的每一项 3、此时运行程序,点击sprite就可以显示下拉列表,但是如何显示自己选取的内容呢 4、创建一个label,原创 2016-05-20 18:50:50 · 625 阅读 · 0 评论 -
unity AssetBundle 使用方法2
之前我们已经讲过如何通过AssetBundle 对文件进行打包,现在我们看一下如何将打包的文件添加到我们的unity场景中。AssetBundle 加载下载远端服务器的AB1、通过构建www类进行下载,www类的下载操作最好放在协同程序中异步执行。 string url = "http://127.0.0.1/GoldenFish.unity3d"; WWW www = new原创 2016-04-26 21:07:42 · 703 阅读 · 0 评论 -
unity 常用的几种相机跟随
固定相机跟随这种相机有一个参考对象,它会保持与该参考对象固定的位置,跟随改参考对象发生移动using UnityEngine;using System.Collections;public class CameraFlow : MonoBehaviour{ public Transform target; private Vector3 offset; // Use th原创 2016-06-01 11:37:50 · 47015 阅读 · 15 评论 -
理解A*寻路算法具体过程
A*寻路 创建网格节点类using UnityEngine;using System.Collections;public class Node { public float radium; // 半径 public int x, y; // 下标 public float gCost = 0, hCost = 0, fCost = 0; // 估价值 pu原创 2016-05-20 18:53:05 · 963 阅读 · 0 评论 -
unity 有限状态机使用
有限状态机,(英语:Finite-state machine, FSM),又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。状态存储关于过去的信息,它反映从系统开始到现在时刻输入的变化;转移指示状态变更,用必须满足来确使转移发生的条件来描述它;动作是在给定时刻要进行的活动描述。有多种类型的动作: 进入动作(entry action):在进入状态时进行原创 2016-05-16 15:07:33 · 1722 阅读 · 0 评论 -
Unity3D研究院之两种方式播放游戏视频
该博客转自雨松MOMO,注意:unity进行视频播放,需要安装一个视频处理软件QuickTime Player,该播发器可以从百度下载,安装完成之后,如果仍旧无法进行视频处理,可以重启电脑,再次尝试。Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上。第二种是在GUI层面上播放视频。播放视频其实和贴图非常相像,因原创 2016-05-13 21:18:13 · 587 阅读 · 0 评论 -
unity 行为树使用
行为树是各种经典的控制节点+行为节点进行组合,从而实现一些复杂的行为状态的控制,这里使用的行为树插件是 Behavior Designer,它包含四种节点。分别是action节点、组合节点、条件节点和修饰节点。 (1) Composites 组合节点,主要包含:Sequence顺序条件,Selector选择条件,Parallel平行条件以及他们之间相互组合的条件。转载 2016-05-13 21:11:28 · 2620 阅读 · 0 评论 -
C# litJson 使用方法
对一般数据进行序列化和反序列化操作 static void jsonTest() { // JsonData jd = new JsonData(); jd["result"] = 1; jd["user"] = new JsonData();//**新添加一层关系时,需要再次 new** JsonDat原创 2016-05-03 13:22:54 · 29212 阅读 · 5 评论 -
unity 基于socket的多人群聊实现
通过c#开发服务器端,unity搭建客户端。实现客户端多用户之间消息的收发,类似于群聊的一种效果。 先看一下程序最终运行效果图:原创 2016-04-15 20:55:53 · 3909 阅读 · 0 评论 -
unity AssetBundle 使用方法1
AssetBundle是Unity引擎提供的—种用于存储资源的文件格式 ,它 可以存储任意一种Unity引擎能够识别的资源 ,例如模型 、纹理 、音频 、动画片段甚至整个场景等 。AssetBundle也可以包含开发者自定义的二进制文件,只需将二进制文件的扩展名改成.bytes,unity引擎即可将其识别为TextAsset,进 而可以被打包到AssetBundle文件中。AseetBundle 资原创 2016-04-26 20:47:24 · 2575 阅读 · 0 评论 -
unity 优化2
角色优化 要做到对Unity角色的优化,我们在确定角色的时候就要为角色使用一个Skinned Mesh Renderer,这里大家需要注意的是必须是使用一个SkinnedMesh Renderer,因为Unity对角色采用优化的时候是对其使用可见的裁剪和更新的方法进行优化,而这种优化必须是在角色使用一个Skinned Mesh Renderer的基础上才能实现的摄像机的优化 对于Unity转载 2016-07-01 11:40:18 · 432 阅读 · 0 评论