Unity3D
文章平均质量分 79
cchoop
热爱编程,热爱游戏
展开
-
XLua性能分析工具
XLua中内置了两个性能分析工具: 函数调用时常分析工具 和 内存泄漏定位工具函数调用时长分析工具典型使用案例:local profiler = require 'perf.profiler'profiler.start()print("xxx")// ...print(profiler.report())profiler.stop()api很简单,就三个,start和stop都是无参数,也很好理解,分别是统计开始以及结束。在start以及stop之间可以多次调用report(也可以考原创 2021-03-27 17:28:12 · 1547 阅读 · 0 评论 -
Unity UGUI折线图
using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;using DG.Tweening;public class UILineImage : MonoBehaviour{ public float[] _datas;//数据 public float _lineWidth = 3;//线宽 public Image _linePrefab;//线Prefab public RectTransfo原创 2020-12-15 00:10:12 · 861 阅读 · 0 评论 -
unity将指定的UI置灰
shader代码Shader "UI/UIGrey"{ Properties { [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} _Color ("Tint", Color) = (1,1,1,1) _StencilComp ("Stencil Comparison", Float) = 8 _Stencil ("Stencil ID", Float) = 0 _StencilOp ("Stenc原创 2020-12-06 21:15:50 · 1558 阅读 · 0 评论 -
Unity 打包iOS 删除 UIWebView引用
检测ios工程中是否有引用UIWebView1.打开终端,cd + 把项目的工程文件所在文件夹拖入终端(即 得到项目的工程文件所在的路径)2.输入以下命令(注意最后有个点号,而且点号和 UIWebView 之间必须有一个空格):grep -r UIWebView .3.以上操作都正确的话,会马上出现工程中带有 UIWebView 的文件的列表(包括在工程中无法搜索到的 .a 文件中对UIWebView 的引用)Unity 打包iOS 删除 UIWebView引用...转载 2020-11-03 17:01:39 · 374 阅读 · 0 评论 -
极光推送Unity-Android-API
Android API停止与恢复推送服务清除通知设置允许推送时间设置通知静默时间申请权限接口(用于 Android 6.0 及以上系统)通知栏样式定制设置保留最近通知条数本地通知获取推送连接状态动态设置channel通知栏被打开设置地理围栏监控周期开启和关闭省电模式停止与恢复推送服务StopJPush()调用了该 API 后,JPush 推送服务完全被停止。具体表现为:JPush Service 不在后台运行;收不到推送消息;极光推送所有的其他 API 调用都无效原创 2020-08-24 23:18:57 · 462 阅读 · 0 评论 -
unity动画特效不受timeScale影响
跑酷类游戏会用TimeScale来控制游戏的节奏,当timeScale不为1时,动画和特效播放会受到影响,因此需要写一些脚本去控制动画特效的播放以下是ParticleSystem的控制类,后续补充Animation和Animator的思路: Time.unscaledDeltaTime 不受timeScale影响扩展: 协程yield return new WaitForSeconds也会受到影响,可以改为使用yield return new WaitForSecondsRealtimeParti原创 2020-08-09 21:36:40 · 1982 阅读 · 0 评论 -
unity实现打字机效果
unity实现打字机效果实现思路: 做一个定时器,每次达到时间更新一次Textusing UnityEngine;using UnityEngine.UI;[RequireComponent(typeof(Text))]public class TypewriterEffect : MonoBehaviour{ private float intervalTime = 0.2f;//打字时间间隔 private string words;//保存需要显示的文字 private bool原创 2020-08-09 17:58:11 · 1333 阅读 · 1 评论 -
同时滑动父节点的ScrollRect和子节点的ScroollRect
策划需求: 滑动大的切页类型(横向)的同时,需滑动子切页中的物品(纵向),但是同一时间只会响应一个以下代码可以实现这个需求,此需求设计的缺点是物品Item不能得到复用,因为横向切页的时候可以看到两个切页的物品,但是子ScrollView可以做一个循环列表的功能,有好的想法请在下方留言。using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;using UnityEditor;/// <summary>原创 2020-08-02 20:15:42 · 287 阅读 · 1 评论 -
unity-ios包支持ipv6OC代码
ios包提升必须支持ipv6,代码如下:BundleId.h@interface BundleId : NSObject+(NSString *)getIPv6 : (const char *)mHost :(const char *)mPort; @endBundleId.m:#import "BundleId.h"#include <sys/socket.h>#include <netdb.h>#include <arpa/inet.h>#inc原创 2020-06-24 19:43:29 · 371 阅读 · 0 评论 -
AssetPostprocessor资源管理器类
unity资源导入时,进行一些处理using UnityEngine;using UnityEditor;/// <summary>/// 资源导入处理编辑器类,对导入的资源进行处理/// </summary>public class AssetPostprocessorEditor : AssetPostprocessor{ //模型导入之前调用...原创 2020-01-09 11:17:43 · 544 阅读 · 0 评论 -
CoroutineMgr协程管理器
管理游戏中所有的协程CoroutineMgr = {}local datas = {}--- 等待下一帧function CoroutineMgr.WaiteFrame() coroutine.yield()end--- 等待一个时间function CoroutineMgr.WaitTime(t) while t > 0 do t = t...原创 2020-07-19 14:35:10 · 238 阅读 · 0 评论 -
打AB包流程
1.设置lua的AssetBundle包将lua文本文件全部转成字节文件,并拷贝至指定的打包目录2.打包资源文件设置打包输出路径outpath,根据BuildTarget(打目标设备的包)讲lua字节码文件拷贝纸打包输出路径outpath开始打包BuildPipeline.BuildAssetBundle(outputPath,abList.ToArray(),options targ...原创 2019-12-05 15:30:19 · 1050 阅读 · 1 评论 -
UGUI世界坐标转换为UI本地坐标(游戏Hud的实现)
近来在游戏实现一些功能时,原以为很简单的东西却难以实现,需要查大量资料才能去实现它,浪费了时间,降低了开发进度深感基础之薄弱,究其原因是在学习新知识时浅尝辄止,基础不牢靠,很多知识没有经过验证就跳过它,这对于学习来说是非常忌讳的,因此博主在此警醒自己,今后的学习要举一反三寻根问底。~~欲登高而穷目,勿筑台于浮沙!时间:2019年5月20日(520)实现世界坐标的原理是: 世界坐标和UGU...原创 2019-05-20 15:23:29 · 2783 阅读 · 0 评论 -
相机旋转、缩放、平移
配合插件LeanTouch插件,相机旋转、缩放、平移(惯性)等操作using UnityEngine;using Lean.Touch;using System.Collections.Generic;public class CameraOperation : MonoBehaviour{ public enum CameraOperationType { ...原创 2019-05-06 14:25:52 · 1124 阅读 · 2 评论 -
简单的事件系统c#
简单的事件系统:可以通过操作码来执行相关的函数操作,还可以通过分模块,再添加一个模块码,进一步细分事件系统原创 2018-11-14 20:12:14 · 950 阅读 · 0 评论 -
unity游戏对象池
简单实现一个游戏对象池:对象池的类型,同时也是预设体的名称:/** * 项目名称: * 脚本描述: * 版本: * 日期:#DATE# * 作者:陈超 * */public class ObjectType{ //预设体的名称 public const string Bullet = "Bullet";}对象池:使用Dictionary存储子对象池usi...原创 2018-10-05 14:21:00 · 647 阅读 · 0 评论 -
UGUI背包系统
博主cc最近用UGUI实现了一个拼图游戏,类似于背包系统(缺少背包系统中数据部分),包含了物品的拖拉拽,物品交换等操作物品交换操作原理:脚本实现 IBeginDragHandler, IDragHandler, IEndDragHandler中的方法,进行物品移动的操作结束拖拽时,判断鼠标下面是否有物品,如果有就交换(交换父物体,并重置),否则物品归回原位置难点:物品拖拽时,若其他物品先...原创 2018-09-24 11:23:04 · 909 阅读 · 2 评论 -
XMLManager
using System.Collections.Generic;using System.Collections;using System.Xml;using UnityEngine;using System;/// &lt;summary&gt;/// 多个XML加载管理器/// 当一个场景或一个项目有多个XML要加的时候/// 为了不一个一个的加载,可以使用一个XML加载管理...原创 2018-09-17 15:19:08 · 702 阅读 · 0 评论 -
unity音效管理器
unity游戏制作时,经常需要播放音效,如果没有一个音效管理类,随时随地都可以播放音乐,不利于代码的管理。我们可以将所有关于音效集中到一个管理类当中,可以将这个音效管理器写成单例,也可以将它当作一个模块,和项目的其他模块通信。 以下提供了两种音效管理器的代码(可根据需求自己添加API或进行代码重构):using UnityEngine;/// <summary>/// 音效...原创 2018-09-10 09:54:40 · 4214 阅读 · 0 评论 -
WWWManager
using System.Collections;using System.Collections.Generic;using System.Text.RegularExpressions;using UnityEngine;using UnityEngine.Events;/* 支持所有加载 www.text; 返回文本字符串[http,json,xml] ww...原创 2018-09-12 15:48:27 · 270 阅读 · 0 评论 -
游戏开发中的人工智能
群组行为(群集行为)模拟鸟群飞行或者人群行走过程称之为群组行为 要素:分离 队列 聚集有限状态机FSMFSM 定义:总的来说,有限状态机系统,是指在不同阶段会呈现出不同的运行状态的系统,这些状态是有限的、不重叠的。这样的系统在某一时刻一定会处于其所有状态中的一个状态,此时它接收一部分允许的输入,产生一部分可能的响应,并且迁移到一部分可能的状态。 五个要素:状态,事件,条...原创 2018-03-10 13:51:28 · 367 阅读 · 0 评论 -
直接使用socket_TCP进行网络游戏开发
创建服务器端Socket并绑定IP和端口号1.引入命名空间: using System.Net.Sockets; using System.Net; 2.创建TCP套接字 Socket serverSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream, ProtocolType.Tcp); 3.绑定IP和...原创 2018-03-12 22:08:54 · 1316 阅读 · 2 评论 -
知识点ss
1.virtual(虚拟的)修饰符在基类(父类)中用virtual修饰符声明一个虚方法,然后在在派生类(子类)中用override修饰符覆盖基类虚方法。表明是对基类的虚方法重载。 这种优势在于它可以在程序运行时再决定调用哪一个方法,这就是所谓的“运行时多态”或者称动态绑定。2.异步加载场景(SceneManager.LoadSceneAsync(“场景名称”))异步异...原创 2018-03-09 00:21:20 · 282 阅读 · 0 评论 -
xLua的学习笔记
Tencent/xLua下载地址:https://github.com/Tencent/xLuaLua文件的加载通过LuaEnv类来执行字符串lua代码luaEnv.DoString(“lua代码”);luaEnv.DisPose(); //销毁lua代码public class HelloWorld01 : MonoBehaviour { private LuaEnv luaEnv;原创 2017-11-23 13:01:17 · 1542 阅读 · 0 评论 -
Lua学习笔记
学习lua的编程笔记:--[[print("Hello World")print(b)b = 10print(b)b = nilprint(b)--]]--[[注释--]]--[[数据类型:nilbooleannumberstringfunctionuserdatathreadtable(lua中的表)--]]--[[print(type(nil))pri原创 2017-11-23 13:14:31 · 283 阅读 · 0 评论 -
AssetBundle相关API的使用
使用代码打包AssetBundle1.使用UnityEditor中的BuildPipeline.BuildAssetBundles方法,要确保保存的文件夹存在2.注意事项:脚本要放在Assets/UnityEditor路径下,否则运行会报错或者脚本放在其他文件夹下,可以这样:#if UNITY_EDITOR//用到UnityEditor命名空间下的代码#endif...原创 2017-11-19 14:47:57 · 679 阅读 · 0 评论 -
C#高级部分
前言 本篇博客为c#高级部分的学习笔记,练习过程中结合了unity编辑器,所有的代码输出都是Debug.Log(“unity”);,在unity的控制台输出字符串string相关API的使用 string中部分方法: 1,CompareTo()方法,比较字符串的内容 2,Replace()用另一个字符或者字符串替换字符串中给定的字符或者字符串 3,Split()在出现给原创 2017-11-27 22:45:45 · 3287 阅读 · 8 评论 -
MonoDevelop快捷键
Ctrl+X 剪切功能。另外,光标放在一行的任意位置(不选中任何内容),使用快捷键,将把这一行剪切并删除此行,这个特性非常好用 Ctrl+Space 显示下拉提示,类似VS2012的Ctrl+J、Eclipse的Alt+/。不过这个组合键通常与切换输入法冲突而不起作用 Alt+↑ 交换两行的位置,当前行上移一行 Alt+↓ 交换两行的位置,当前行下移一行 Ctrl+Z 撤销编辑 Ctrl+转载 2017-11-30 15:57:48 · 355 阅读 · 0 评论 -
Unity中的一些小bug
There are inconsistent line endings in the ‘Assets/DubugTest.cs’ script. Some are Mac OS X (UNIX) and some are Windows. This might lead to incorrect line numbers in stacktraces and compiler errors. Ma...原创 2018-03-31 13:29:15 · 3368 阅读 · 1 评论 -
PhotonServer
启动PhotonServer1.下载PhotonServer: 下载地址:PhotonServer下载 2.双击解压到D盘: 3.在官网注册帐号下载免费license文件,将最大连接数由20扩展为100: 并点击PhotonControl.exe文件启动PhotonServer 4.点击Start as applicatiobn启动一个应用,点击Open L...原创 2018-04-11 16:29:37 · 516 阅读 · 0 评论 -
在unity中解析json文件和xml文件
目录JSON与XML的简单介绍json文件的解析JSON与XML的简单介绍JSON的定义一种轻量级的数据交换格式,具有良好的可读和便于快速编写的特性。业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持),从而可以在不同平台间进行数据交换。JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。...原创 2018-09-06 20:38:02 · 784 阅读 · 0 评论 -
A星寻路算法
A星寻路算法介绍你是否在做一款游戏的时候想创造一些怪兽或者游戏主角,让它们移动到特定的位置,避开墙壁和障碍物呢?如果是的话,请看这篇教程,我们会展示如何使用A星寻路算法来实现它!在网上已经有很多篇关于A星寻路算法的文章,但是大部分都是提供给已经了解基本原理的高级开发者的。本篇教程将从最基本的原理讲起。我们会一步步讲解A星寻路算法,幷配有很多图解和例子。不管你使用的是什么编程...转载 2018-09-12 15:49:22 · 812 阅读 · 0 评论 -
unity之操控陀螺仪
using UnityEngine;public class GyroDemo : MonoBehaviour { // Use this for initialization bool isGyro; Gyroscope gyro;//陀螺仪 void Start () { //获取设备是否支持陀螺仪,是返回true i...原创 2018-09-11 16:07:16 · 822 阅读 · 0 评论 -
鼠标滚轮实现缩放界面
鼠标滚轮实现缩放界面using UnityEngine;public class FllowPlayer : MonoBehaviour{ private Transform player; private Vector3 offsetPosition; public float scrollSpeed = 10; public float rotateS...原创 2018-07-27 15:34:27 · 2461 阅读 · 0 评论 -
Lua学习总结
Lua简介lua简介:Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、Waldemar Celes 和 Luiz Henrique de Figueiredo所组成并于1993年开发。 其设计目的是为了嵌入应用程序中...原创 2018-07-24 12:40:33 · 710 阅读 · 0 评论 -
关于UGUI的中的层级(layer)问题
使用UGUI时,经常需要设置UI上的层级。1.先来说说我们的问题:由于unity渲染物体时是从上到下直接渲染的,这就导致了渲染出来的效果和我们预期的不一致,因此必须设置层级,指定渲染的先后顺序(层级低的先渲染)才行。 那么问题来了,UGUII并没有NGUI这么方便的提供设置层级的入口。 2.我们必须给UI添加一个组件(Canvas)来设置UI层级 但是坑爹的是:设置完后,层级...原创 2018-07-16 16:08:59 · 9273 阅读 · 5 评论 -
基于Unity~UGUI的简单UI框架(附UIFramework源码)
此博客跟随siki老师的课程笔记生成,感谢siki老师的辛勤付出! 框架源码地址: UIFramework litjson.dll下载地址: litjsonUI框架总揽:创建测试面板(非框架部分)将面板以Prefab形式放入Resources文件夹下面,便于框架加载面板 创建json文件和UIPanelType类来保存所有的面板信息UIPane...原创 2018-05-19 18:21:18 · 53041 阅读 · 26 评论 -
unity小案例之俄罗斯方块
俄罗斯方块:项目地址 1. 操作环境 Unity3D 5.6版本、Win 7 备注:该方法并非本人原创,我也是根据别人的代码来学习的。 2. 思路分析 该方法中,只有2个脚本,一个是控制方块的(Block.cs),另外一个是控制游戏场景的(Manager.cs)。游戏完成后效果如下图: 2.1 方块的构造(Block.cs) 俄罗斯方块一共有7种不同的方块。每个种类有4个小方块...原创 2018-05-06 23:20:59 · 1443 阅读 · 1 评论 -
正则表达式C#版
后续边学习边更新… (敬请期待)原创 2017-11-29 14:48:54 · 259 阅读 · 0 评论