
unity3d
考班格
一只老菜鸟
展开
-
webgl 加载ab包材质丢失
webgl打包成ab包,模型不能拆分打包,必须是整个模型打包,拆分打包后在浏览器里会出现材质丢失的情况。原创 2022-03-18 00:44:00 · 1015 阅读 · 1 评论 -
Unity3d OnDestroy问题
切换场景时,OnDestroy()方法执行问题,再次进入场景报错(UI界面组件被删除)事件解绑的方法需要在切换场景时,手动解绑1.代码控制物体删除2.手动清理内存Resources.UnloadUnuseAssets()GC.Collect()Caching.ClearCache()...原创 2021-09-14 12:00:11 · 1463 阅读 · 0 评论 -
Unity3d 模拟鼠标框选物体
脚本需要挂载在相机上,材质球选择默认Sprites-Default./// <summary>/// 鼠标框选屏幕选中物体/// </summary>public class RectRender : MonoBehaviour{ private bool onDrawingRect;//是否正在画框(即鼠标左键处于按住的状态) private Vector3 startPoint;//框的起始点,即按下鼠标左键时指针的位置 private V...原创 2021-08-24 23:26:10 · 732 阅读 · 1 评论 -
Unity3d:使用插件导出Excel
使用插件一键导出excel文件private void SaveExcel(){ string _filePath=Application.streamingAssetsPath+"/log.xlsx"; string _sheetName="详情"; FileInfo _excelName=New FileInfo(_filePath); //如果存在文件,就删除,重新创建 if(_excelName.Exists){ _excel...原创 2021-01-24 14:30:59 · 387 阅读 · 0 评论 -
unity3d:unity启动外部程序,并传递参数(json)
//打开外部程序 public void StartExe(){ //获取路径 string dir=Environment.CurrentDirectory; ProcessStartInfo pi=new ProcessStartInfo(); pi.FileName=dir+"/1.exe"; pi.Argrments=js.ToJson();//传递json vrar=Process.Start(pi);//获取进程 //绑定外...原创 2020-11-15 13:28:02 · 950 阅读 · 0 评论 -
Unity3d:检测本地是否和服务器连接正常
public class PintTest : MonoBehaviour { public string ip = string.Empty;//IP地址 private bool iswork = false;//是否有网络通信 PingReplay re; void Start() { ip = "61.135.169.121"; // 百度 InvokeRepeating("SendPing",1,3); } ...原创 2020-11-15 12:55:50 · 754 阅读 · 0 评论 -
Unity3d:代码自动添加场景到BuildSettings
//在启动Unity的时候运行该编辑器脚本 [InitializeOnLoad] public class AutoAddSomeScenesToBuild { // 注意一定要是静态方法 static AutoAddSomeScenesToBuild() { // 获取存放指定场景Scene的文件夹信息 var scenesDir = new DirectoryInfo(Application.dataPath + "/Scenes");...原创 2020-11-15 12:34:40 · 1194 阅读 · 0 评论 -
unity3d:使用log4net输出日志到unity3d UI
下载最新log4net.dll到unity的Plugins文件夹 unity中设置.net为最新的编写输出到UI上的类public class UiLogEventArgs : EventArgs //自定义的类 { public string Message { get; private set; } public UiLogEventArgs() { } public UiLogEventArgs(string message) { ...原创 2020-10-18 20:55:34 · 567 阅读 · 0 评论 -
unity3d:使用log4net输出日志到文件
下载最新log4net.dll到unity的Plugins文件夹/// <summary> /// 日志打印功能 /// </summary> public class LogTest : MonoBehaviour { private static ILog log = LogManager.GetLogger("FileLogger"); private void Start() { //输出到文件 G...原创 2020-10-18 20:39:54 · 1301 阅读 · 0 评论 -
Unity3d:代码设置分辨率和全屏
public void SetScreen(){ Screen.SetResolution(w,h,false); Screen.fullScreen=true; }原创 2020-10-11 20:16:05 · 1423 阅读 · 0 评论 -
Unity3d:代码控制画质
void SetQuality(){ Qualitysettings.SetQualityLevel(3,true); }原创 2020-10-11 20:12:29 · 436 阅读 · 0 评论 -
Unity3d:代码运行时间统计
public static class Timecount { public static Stopwatch st=new Stoppwatch(); pub static void startTime(){ st.Start(); } public static void StopTime(){ st.Stop(); } }原创 2020-10-11 20:08:37 · 712 阅读 · 0 评论 -
Unity3d网络:UnityWebRequest使用方法
///发起请求,获取列表,保存到本地 IEnumerator StartRequest(){ Uri uri=new Uri(serverpath);//转换为标准uri UnityWebRequest request=UnityWebRequest.Post(uri,""); if(request.isHttpError||request.isNetworkError){ Debug.Log(request.error); yield break; } yield retu...原创 2020-08-23 15:26:30 · 722 阅读 · 0 评论 -
Unity3d:代码控制打开windows窗体
// ======================================================== // Module:打开窗体类型 // Author:tan // Time:2020/07/26 11:38:38 // ======================================================== using System; using System.Collections; using System.Collections.Gene.原创 2020-07-26 13:02:12 · 466 阅读 · 0 评论 -
Unity3d:代码动态控制Image转换sprite
public class ImageChangeSprite { //传入texture类型,转换 sprite类型 public static Sprite Createsprite(Texture2D tex) { Sprite sp= Sprite.Create(tex,new Rect(0.0f,0.0f,tex.width,tex.height),new Vector2(0.5f,0.5f)); return sp; }...原创 2020-07-26 12:56:37 · 1297 阅读 · 0 评论 -
Unity3d:坐标转换
Camera.main.ScreenToWorldPoint();//屏幕坐标转世界坐标 Camera.main.WorldToScreenPoint();//世界坐标转屏幕坐标 Camera.main.WorldToViewportPoint();//世界坐标转视口坐标 Camera.main.ViewportToWorldPoint();//视口坐标转世界坐标 Camera.main.ViewportToScreen...原创 2020-07-12 01:38:18 · 229 阅读 · 0 评论 -
Unity3d:获取图片在屏幕的坐标
Vector3[] corners = new Vector3[4]; gameObject.GetComponent<RectTransform>().GetWorldCorners(corners); foreach (var item in corners) { Debug.Log(item); }原创 2020-07-12 01:33:31 · 1792 阅读 · 0 评论 -
Unity3d Quaternion角度限制
Quaternion qa; public void RotateQ(){ var v = Input.GetAxis ("Mouse X"); var h = Input.GetAxis ("Mouse Y"); qa *= Quaternion.Euler (h,v,0); qa = ClampX (qa,-30f,30f); qa = ClampY (qa,-30f,30f); thi...原创 2020-07-12 00:33:29 · 1015 阅读 · 0 评论 -
Unity3d:共享声音
共享特效管理器 public class AudioSourceManager : MonoBehaviour { public static AudioSourceManager _instance;//单例 private float volumn = 1.0f;//音量 private bool isMute = false; public float Volumn { get => volumn; set => volumn = value; ...原创 2020-07-05 12:32:59 · 204 阅读 · 0 评论 -
Unity3d:NGUI实现背包物品拖拽,交换位置
public class DragAndDropEquipment : UIDragDropItem { /// <summary> /// 重写拖动结束后 /// </summary> /// <param name="surface"></param> protected override vo...原创 2020-04-17 04:40:43 · 506 阅读 · 0 评论 -
Unity3d:UI显示网络延迟
public class PintTest : MonoBehaviour { public string ip = string.Empty;//IP地址 Ping ping;//Ping命令 string label;//延迟数据 public UILabel pingLabel;//NGUI label void Start() {...原创 2020-04-13 23:29:50 · 1072 阅读 · 0 评论 -
Unity3d:UI显示FPS
Application.targetFrameRate:重点=-1是默认显示public class FPSTest : MonoBehaviour { public float timeCount = 1f; //更新帧显示帧数的时间 public int defaultFPS = 30; //默认帧频 private float...原创 2020-04-13 22:29:28 · 418 阅读 · 0 评论 -
Unity3d:Mesh模拟英雄攻击范围扇形:
扇形攻击范围:使用代码生成mesh模拟扇形攻击范围:新建场景,新建一个Cube,此脚本挂在Cube上;public class DrawMeshSector : MonoBehaviour { //mesh代码生成的 public GameObject go; MeshFilter mf; MeshRenderer mr; Shader sha...原创 2020-03-18 02:32:28 · 829 阅读 · 0 评论 -
Unity3d:Mesh模拟英雄攻击范围圆圈:
圆圈攻击范围:使用代码生成mesh模拟圆圈攻击范围:新建场景,新建一个Cube,此脚本挂在Cube上;public class DrawMeshCircle : MonoBehaviour { //mesh代码生成的 public GameObject go; MeshFilter mf; MeshRenderer mr; Shader sha...原创 2020-03-18 02:25:20 · 503 阅读 · 0 评论 -
Unity3d:NavMeshAgent导航路径显示
使用LineRenderer画出导航路径核心代码如下: /// <summary> /// 画导航路线 /// </summary> private void DrawNavMeshAgentLine() { Vector3[] path = NavAgent.path.corners;//导航路径点 ...原创 2020-03-18 02:11:36 · 1025 阅读 · 0 评论 -
Unity3d:LineRenderer模拟英雄攻击范围扇形:
扇形攻击范围:使用LineRenderer模拟扇形攻击范围:新建场景,新建一个Cube,此脚本挂在Cube上;public class DrawSector: MonoBehaviour { void Start() { } void Update() { if (I...原创 2020-03-16 21:28:51 · 637 阅读 · 0 评论 -
Unity3d:LineRenderer模拟英雄攻击范围圆圈:
方法1:使用LineRenderer模拟圆圈攻击范围:新建场景,新建一个Cube,此脚本挂在Cube上;public class DrawCircle : MonoBehaviour { void Start() { } void Update() { if (Input.GetKeyDo...原创 2020-03-16 20:57:00 · 353 阅读 · 0 评论 -
Unity3d UGUI:判断鼠标是否在UI界面上
判断鼠标是否在UGUI的UI上,脚本实现IPointerDownHandler接口,需要挂载在UI上判断鼠标是否在UI上点击 public void OnPointerDown(PointerEventData eventData) { Debug.Log("点击了地图,点击的点为" + eventData.position.ToString()); ...原创 2020-01-08 05:24:54 · 1656 阅读 · 0 评论 -
Unity3d NGUI:判断鼠标是否在指定UI界面上
判断鼠标是否在NGUI的UI上,指定的UI需要添加BoxCollider//UICamera.isOverUI是判断鼠标是否在UI上点击 if (UICamera.isOverUI) { //UICamera.hoveredObject判断的是鼠标是否在指定UI上 if (UICamera.ho...原创 2020-01-08 05:14:56 · 820 阅读 · 0 评论 -
Unity3d,用代码动态添加动画事件
//绑定到宿主身上 public class AAAA : MonoBehaviour { private Animator animator;//animator组件 public AnimationClip[] clips;//动画片段 void Start() { animator = GetComponent<Anim...原创 2019-12-22 05:10:12 · 2693 阅读 · 0 评论 -
Unity3d NGUI UIButton的状态改变
private UIButton button; void Start(){ button = transform.Find("BanButton").GetComponent<UIButton>(); } void DisableBanButton() { button.GetComponent<BoxCollider>()...原创 2019-12-15 03:23:51 · 477 阅读 · 0 评论 -
Unity3d NGUI UILabel简单倒计时
private UILabel timeLabel;//倒计时的UILabel public bool isTimelabel = false;//是否开始计时 private float timeLabelCount;//时间 float times = 0;//间隔public void InitUI() { timeLabelCoun...原创 2019-12-11 16:35:18 · 378 阅读 · 0 评论 -
NGUI 按钮修改sprite运行无效的原因
在NGUI中用代码控制UIbutton的spritebutton..GetComponent<UISprite>().spriteName="2";运行之后点击,就会恢复到默认状态,正确的修改方式button..GetComponent<UIButton>().normalSprite="2";...原创 2019-11-17 09:14:28 · 426 阅读 · 1 评论 -
unity3d WWW类的简单使用
WWW类可以下载服务器上面的资源,也可以下载本地资源。首先创建场景,创建一个Cube,搭载界面,两个Button. 在Cube上添加脚本,内容如下: private Texture text0;//下载本地图片 private Texture text1;//下载网络上的图片 public Button but1;//本地Button pub...原创 2018-09-04 21:52:45 · 1715 阅读 · 0 评论 -
unity3d 在Sphere上播放视频
播放音频使用VideoPlayer组件。首先搭建如下场景,场景中创建一个Sphere.在Sphere上面添加VideoPlayer组件,并且给VideoClip赋值一个视频(MP4格式)。给Sphere添加如下脚本: public Button but1; public Button but2; public Button but3; publ...原创 2018-09-04 18:59:11 · 736 阅读 · 0 评论 -
unity3d 播放音乐片段
播放音频使用AudioSources组件。首先搭建如下场景在Canvas上面添加AudioSource组件,并且给AudioClip赋值一个音频。给Canvas添加如下脚本: public Button but1; public Button but2; public Button but3; public Slider silder; ...原创 2018-09-04 18:44:53 · 994 阅读 · 0 评论 -
unity3d 线性渲染器 lineRender的简单使用
LineRender用于在3D世界中渲染线段。首先创建空物体GameObject,添加组件LineRenderer.添加如下脚本:public GameObject LineRenderGameObject;//GameObject空物体 public LineRenderer lineRender;//GameObject的lineRenderer组件 priva...原创 2018-08-29 22:36:58 · 7130 阅读 · 1 评论 -
unityd GL用线段连城一个空心三角形
绘制三角形,要保证三个点可以构成三角形,本方法是绘制了三条相连的线段。示例代码如下: public Material material; void OnPostRender () { if (!material) { Debug.LogError ("请给材质赋值"); return; ...原创 2018-08-29 19:32:35 · 290 阅读 · 0 评论 -
unity3d GL绘制一个三角形
绘制三角形,保证三个点要能构成三角形。示例代码如下:public Material mat; void OnPostRender () { DrawTriangle (30, 0, 100, 250, 200, 100, mat);//三角形的三个定点坐标 } void DrawTriangle (float x1, float y...原创 2018-08-29 19:10:08 · 1122 阅读 · 0 评论 -
Unity3d GL绘制一个跟随鼠标的曲线
把鼠标的移动轨迹以曲线的方式显示出来。示例代码如下: public Material material;//材质,必须要有 private List<Vector3> lineInfo;//鼠标坐标的集合 void Start () { lineInfo = new List<Vector3> ();//初始化集...原创 2018-08-29 19:05:53 · 815 阅读 · 0 评论