- 博客(75)
- 收藏
- 关注
原创 一些常用但是想不起来的功能方法
在GetSameMesh方法中传入带有MeshRender组件的两个模型,方法会对比网格属性是否相同,这个属于寻找相同模型比较靠谱的方式,哪怕两个模型的Transform属性不一样,名字不一样,中心点不一样,但是网格数据如果没有改变的话一定是一样的。followTarget是跟随移动的物体,lookTarget是注视的物体,跟随移动的速度可以改Lerp方法最后一个参数的大小,LookAt方法的第二个参数是保证相机注视时Z轴子旋转的值始终为0。在参数中传入获取的地址和处理数据信息的回调方法。
2025-04-17 15:07:18
243
原创 根据模型网格大小对模型进行拆分
通过调用GetModelBombPos方法,传入想要拆分的模型(可以同时计算子物体的网格),会通过算法进行逐步拆分,拆分结束后可以通过SetModelBomFill方法,传入一个最大值为1.0的值来指定模型拆分百分比的过程(0.0代表未差分的位置,1.0代表拆分结束的位置,可以传入中间值)
2025-04-17 09:19:05
138
原创 获取模型网格中心点及添加最适配盒型碰撞器
获取网格中心点的方法为:GetMeshMaxSizeWorldValue,第一个参数传入网格模型,后两个参数返回中心点和模型大小。添加最适配的盒型碰撞器方法为:AddMeshMaxSizeCollider,参数传入网格模型。
2025-04-14 17:05:25
167
原创 UnityUI:Canvas框架获取鼠标悬浮UI
将下面脚本挂在主体Canvas上,Canvas会对下面所有Image挂上PointerHandler脚本,并且可以通过GetPointEnter方法判断当前鼠标是否悬停在UI上。下面是PointerHandler脚本,其余脚本可以获取这个脚本并写入事件,这个脚本在触发点击或拖拽时会调用对应的事件。
2025-04-14 16:25:45
248
原创 Unity开发框架:输入事件管理类
开发程序的时候经常会出现更改操作方式的情况,这种时候就需要将操作模式以事件的方式注册到管理输入事件的类中,方便可以随时切换和调用。
2025-04-14 15:47:34
404
原创 Unity学习笔记重新整理
Gizmos类的功能是在编辑器Scene视图中创建辅助线或辅助图标必须在脚本的OnDrawGizmos或OnDruwGizmosSelected的生命周期函数中完成OnDrawGizmos循环执行(未运行状态下仍可执行)OnDrawGizmosSelected在选中脚本挂载的物体的身上的时候运行(未运行状态下仍可执行)Debug类可以放在任意生命周期函数中,同样具备绘制线段及绘制射线功能,但只能在运行状态下使用,且只能绘制线段不能绘制图形。
2024-06-11 17:10:30
797
原创 Unity AssetsBundle打包
默认情况下,unity编译打包是对项目下的Assets文件夹全部内容进行压缩打包那么按照这个原理,你的Assets文件夹的大小将会影响到你最终打包出的安装包的大小,假如你现在正在制作一个游戏项目,最终打出来的安装包过大可能会对玩家下载造成一定影响,对一般玩家来讲,下载10M的游戏安装包远远比下载100M的游戏安装包要更容易接受,而AssetBundle可以将一部分资源打包到一个压缩包里面,游戏运行到需要的时候再进行下载这部分资源。
2024-04-26 22:36:32
1632
1
原创 Unity中Socket,Tcp,Udp网络连接协议总结
详细解释Socket通信,Tcp同步与异步通信,Udp同步与异步通信,单播和组播的功能
2024-04-18 22:34:29
3498
1
原创 Unity 线程相关知识
在调用线程的时候,会先创建线程,然后再线程结束后销毁线程,如果频繁对线程进行创建和销毁会极大的损耗计算机的性能,所以在频繁创建逻辑简短的线程的时候,最好使用线程池线程的运行是不规律的,结果不可控的,可能会涉及到一个线程中使用一个值之前这个值被另一个线程改变了,从而导致出现未知错误,这种情况下就需要控制线程执行的顺序,规避问题。
2024-04-18 00:16:15
801
原创 UnityShader 一个能透视到背景的shader
Shader"Timor/MaskShader"{ SubShader{ Tags{"Queue" = "Geometry-10"} Lighting off ZTest LEqual ZWrite On ColorMask 0 Pass{} }}
2022-02-24 19:36:32
503
原创 Unity完美的UI绘画工具
直接将代码放在RawImage上(不能放在Image上面)包含了撤销和清除功能,两个功能也可以联动需要注意revocations变量不能等于1或者0,否则会进入死循环using System;using System.Collections.Generic;using UnityEngine;using UnityEngine.EventSystems;using UnityEngine.UI;public class PaintingGraffiti : MonoBehaviou
2022-02-22 15:47:55
4089
12
原创 Unity在滚动视图下实现水平翻页
滚动视图的MovementType属性设置为Clamped,然后去除Inertia的勾选其中用到UnitManager代码在:Unity:利用UnitManager类实现一些复杂的功能(长期更新)_努力长头发的程序猿的博客-CSDN博客using System;using UnityEngine;using UnityEngine.UI;using UnityEngine.EventSystems;public class ScrollPage : MonoBehaviour , IPo
2022-01-19 17:55:52
3420
原创 Unity 屏幕中需要拖动的UI及其回调:MainDrag
using System;using UnityEngine;using UnityEngine.EventSystems;public class MainDrag : MonoBehaviour, IPointerDownHandler, IPointerUpHandler{ private bool isEnd; private bool isSelect; public bool closeDrag { get; set; } private Vector.
2021-12-09 19:06:16
239
原创 Untiy GetTag 赋予物体额外的可读取的属性
给物体挂在可以以字典格式读取的额外属性using System;using System.Collections.Generic;using System.Linq;using UnityEngine;public class GetTag : MonoBehaviour{ [Serializable] public struct MainTag { public string key; public string value;
2021-11-11 15:24:32
254
原创 Unity 赛车控制器
脚本挂载在车子上车子需要具有Rigidbody2D组件其中子物体:wheelFront:车子前轮,有CircleCollider,WheelJoint2D和Rigidbody2D组件wheelBack:车子后轮,有CircleCollider,WheelJoint2D和Rigidbody2D组件wheelFrontTrigger车子前轮下方的检测器,需要勾选Trigger的BoxCollider和属性为Kinematic的Rigidbody2D组件,以及一个简单的GetWheelTrigge
2021-11-03 14:30:40
2410
原创 Unity2d相机跟随效果
脚本挂在相机上,Target设置为跟随的物体using UnityEngine;public class HomeCamera : MonoBehaviour{ private void FixedUpdate() { if (this.targetTrans != null) { float num = Vector2.Distance(transform.position, this.targetTrans.positi
2021-11-01 17:57:42
269
原创 Unity:切换场景过度
创建一个Canvas挂载以下代码,代码下有一个带射线碰撞的透明Image名字叫"stopSelectAll"和一个不带射线碰撞的加载页面图片的Image名字叫"mage"using System;using DG.Tweening;using UnityEngine;using UnityEngine.SceneManagement;using UnityEngine.UI;public class SceneChangeManager : MonoBehaviour{ priv
2021-04-07 15:50:06
1226
转载 C#获取当前时间的各种返回格式(常用的)
此乃转载文章,原链接:https://blog.csdn.net/q393364227/article/details/53783631在开发项目中碰到的需要的格式,下面总结一些常用的格式1.//获取日期+时间(2016-12-21 13:20:10)(sql server 的 datetime时间格式)DateTime.Now.ToString();DateTime.Now.ToLocalTime().ToString();2.//获取日期(2016年12月21日 or 2016-12-2
2021-03-25 16:28:22
1540
原创 Unity2d:通过单双指移动放大图片
和移动相机比较类似,更改的值换为了image的RectTransformusing System.Collections;using System.Collections.Generic;using UnityEngine;public class ShowMove : MonoBehaviour{ private RectTransform rect; public float scale; private Vector3 lastclickpos, lastmap
2021-03-25 10:04:57
1381
5
原创 Unity通过菜单实现批量修改文件名称
using UnityEngine;using UnityEditor;using System.IO;using LitJson;public class MenuEditor : MonoBehaviour{ [MenuItem("菜单/批量更换文件名")] public static void Temporary() { string path = @"直接从我的电脑复制路径地址"; path = path + @"\"; .
2021-02-25 11:12:20
1065
原创 Unity按键方法管理系统
管理手机返回键功能的系统,在跳转页面的时候注册返回事件为关关闭自身,自身关闭或回调生效时注销事件,还包括左右滑动事件using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public class GetMobileKeyManager : MonoBehaviour{ private float clickTime; public stati
2021-02-10 11:53:46
532
原创 Untiy:使用GameTeach来为游戏添加新手教程
在Canvas上挂载脚本,把Canvas设定在最高层,在Canvas中根据顺序创建多个子物体当作每一步显示切换的提示框,在不同的提示框下创建名为btn的Button作为传递的点击事件,然后脚本中的Canvas公开拖拽此场景中其他需要传递点击事件的Canvas,auidoLenge为声音的个数,教程没有声音就赋值0using System;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;public
2020-11-20 17:40:44
236
原创 Unity:使用AppBuyManager来进行付费购买以及如何使用Firebase
谷歌app内购代码using System.Collections.Generic;using UnityEngine;using UnityEngine.Purchasing;public class AppBuyManager : MonoBehaviour, IStoreListener{ private static AppBuyManager main; public static AppBuyManager Main { get { r.
2020-11-20 16:48:17
768
原创 Unity2d:根据手指拖动和拉伸移动位置或改变大小
适用于2d相机的拖动移动和缩放拉伸,其中有位置和大小的最大最小限制文中用到的GameManager在这篇文章:https://blog.csdn.net/qq_39332021/article/details/106625199using System.Collections;using System.Collections.Generic;using UnityEngine;public class MapMove : MonoBehaviour{ private Camera
2020-10-29 17:21:10
940
原创 Unity:利用UnitManager类实现一些复杂的功能
UnitManager类为Unity单例类,需要在一开始加载到场景中,里面有5个公开的方法Wait(float time, Action action):等待参数一的时间后执行参数二的回调Wait(Action action):在下一帧执行参数一的回调Domove(RectTransform rect, Vector3 movepos, float time) 类似与DoTween中对于UI的移动,但是Dotween的DolocalMove无法适配UI布局的问题,这个功能解决了那个问题
2020-08-21 17:25:12
892
1
原创 Unity:使用TextureManager在安卓读取本地图片或截屏存入本地
首先介绍下Application.persistentDataPath,这个是返回Andrio客户端专门为APP保存素材的文件夹,在PC会保存到C盘文件夹下,PC可以使用Application.dataPath保存到根目录C#单例类,不需要挂载到场景,一共有三个方法Texture ReadTexture(string path) 读取素材文件夹下的参数一的图片文件转换成Texture类型返回值(RawImage使用)PrintCameraAndSave(Camera camera,stri
2020-08-21 17:11:26
1258
原创 Unity:通过JsonManager类将Excel文件解析为字符串二维数组(适用于安卓和PC)
上一篇文章讲了如何用ExcelManager解析Excel文件,本篇需要与上一篇链接内容结合使用,链接https://blog.csdn.net/qq_39332021/article/details/108150209ExcelManager解析数据在PC上可以用,但是安卓上时行不通的,所以需要吧Excel转换成Json文件在对Json文件进行读取操作首先是利用继承了UnityEditor类的JosnEditor类生成菜单,然后在Assets目录下创建Resources文件夹里面创建Json.
2020-08-21 16:54:47
565
1
原创 Unity:通过ExcelManager类将Excel中的内容解析为字符串二维数组(适用于Windows)
C#单例类,通过第一个方法读取根目录下Excel文件夹下名为参数一的文件,读取完毕后执行传入的回调函数,读取Excel表的方式只适用于Windows也就是PC不适用与安卓,想要导出安卓并解析Excel数据的请参考:下一篇文章using System;using UnityEngine;using System.IO;using OfficeOpenXml;public class ExcelManager{ private static ExcelManager main; .
2020-08-21 16:39:15
394
1
原创 Unity:实现手游中的根据时间获得体力
首先是用来保存体力数据的GameManager类,里面定义包含数据的变量,直接访问或修改这些变量就能实现想要的功能Vim:现在拥有的体力值 (会改变,不需要初始值)vimmax:拥有体力的上限是多少 (不会改变,需要初始值)addvimtime:还剩多长时间获得下一次体力 (会改变,不需要初始值)addvimwaittime:每隔多长时间获得一次体力 (不会改变,需要初始值)timeunit:本地记录的上一次的时间数据 (会改变,不需要初始值)
2020-08-21 16:29:59
1469
原创 Unity:求好评控制器
using System;using System.Runtime.InteropServices;using UnityEngine;public class AndroidClick : AndroidJavaProxy{ private Action<int> action; public AndroidClick(Action<int> action) : base("com.cwgtech.unity.MyPlugin$AlertViewCal.
2020-07-24 16:15:31
183
原创 Unity:使用AudioManager控制场景当中各种声音的播放
导入项目挂在物体上,用法在最后using System;using System.Collections;using System.Collections.Generic;using UnityEngine;public enum AudioMode{ now, always, loop}public class AudioManager : MonoBehaviour{ private List<AudioSource> audio.
2020-07-24 16:12:57
1977
原创 Unity 使用AdsManager控制各种广告
设置完Google广告之后导入项目调用方式:AdsManager.Main.ShowBanner(); //显示横屏广告AdsManager.Main.ShowInterstitial(); //显示插屏广告using System;using System.Collections;using System.Collections.Generic;using UnityEngine;using GoogleMobileAds.Api;public class AdsMan...
2020-07-24 16:06:11
503
原创 Unity APP添加广告
导入GoogleMobileAds资源包using GoogleMobileAds.Api;代码引用GoogleMobileAds包private BannerView bannerView;保存屏幕边缘广告的变量private InterstitialAd interstitial;保存游戏过程中出现的插屏广告的变量private RewardBasedVideoAd rewardBasedVideo;保存激励视频广告的变量bannerView = new .
2020-06-29 16:57:09
867
原创 Unity 手机App内购
添加引用using UnityEngine.Purchasing;通过代码继承IStoreListener接口实现接口功能完成App内购功能private static IStoreController m_StoreController;定义商品信息变量,这个变量控制购买商品储存着商品信息以及作为后面方法的参数传递private static IExtensionProvider m_StoreExtensionProvider;定义商品信息扩展变量,这个变量里储存着各个
2020-06-29 11:27:38
1406
原创 为Unity用手机操作UGUI制作一套操作方法
市面上最常见的就是EasyTouch,不过现在下不到了而且也没学会,所以自己研究出来一套方式来应对手机端操作UGUI,应该和EasyTouch类似(没怎么用过EasyTouch)实现了点击事件,拖拽功能,松开事件,放在固定点的事件,四个最常用的功能应用这篇文章里的内容用上了前面获取手机端操作的代码:https://blog.csdn.net/qq_39332021/article/details/106625199首先是大脚本TakeEventusing System;using Sys
2020-06-08 18:26:10
594
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人