- 博客(28)
- 收藏
- 关注
原创 C# break continue return 三者区别
break:执行break操作,跳出所在的当前整个循环,到外层代码继续执行。通常,是离当前break最近的一个函数体的循环会被跳出。即一次只能结束一种循环continue:执行continue操作,跳出本次循环,从下一个迭代继续运行循环,内层循环执行完毕,外层代码继续运行。字段后面不需要跟着参数。即结束的是本次循环,并将接着开始下一次循环。return:执行return操作,直接返回函数,所有该函数体内的代码(包括循环体)都不会再执行。在需要返回值的情况下,后需要紧跟一个返回值,用于提供给对应方法所需的
2022-06-08 11:45:31
365
原创 为什么使用 puerts 及 puerts 在项目中的使用、TS理解
首先要知道什么是puerts,puerts提供了通过TypeScript访问宿主引擎的能力(如通过ts语言可以获取到gameobject身上的组件),相比于lua脚本,typeScript的静态类型检查有助于更好地去编写代码。高效(全引擎,全平台支持反射binding,无需额外生成代码)、高性能(全引擎,全平台支持静态binding)关于puerts里的c#标签介绍:Configure:配置类,只能用于类上,且在Editor文件夹下;Binding:在 js/ts 调用的时候,可以找到该类(会生
2022-05-25 19:02:48
2659
原创 Unity 关于路径的一些相关方法的使用
关于路径的一些相关方法的使用Path.Combine比如:string tmp = Path.Combine(@“C:\11”, @“D:\aa.txt”);tmp 就等于 @“D:\aa.txt”Path.GetFullPath返回指定路径字符串的绝对路径FileInfo 文件类FileInfo[ ] fileInfoArray = dir.GetFiles(); //获取该文件下的所有文件DirectoryInfo 文件夹类DirectoryInfo[ ] dirInfoArray =
2022-04-26 18:08:11
2105
原创 Unity 判断是否为预制体的根节点
传进场景中的物体 gameObject 判断其是否为预制体 //判断是否为预制体的根节点 public bool IsPrefabRoot(GameObject obj) { if (PrefabUtility.IsAnyPrefabInstanceRoot(obj)) { return true; } if (PrefabStageUtility.GetCurrentP
2022-04-26 15:43:23
2399
原创 Unity面试题
1.UGUI注意事项1.GameObject.SetActive 尽量少使用。因为在OnEnable 和OnDisenable 都会重新设置一遍所有的脏标志2.平铺类型的操作不要用Image 要用Rawimage3. Raycast 不用就关掉,Unity 默认是开启的,但是有很多UI不需要接收点击事件4. UI合批需要注意材质是否一样,图片ID是否一样5. UI 上的的Color属性 不建议直接修改,修改会导致重绘mesh,建议修改材质球颜色不会出现这个问题2.结构体和类区别1.类是引用类
2022-02-13 03:00:31
1414
原创 Unity 3D 面试 数据结构与算法简述
数据结构与算法简述一、线性表二、栈(Stack)和队列(Queue)一、线性表定义:一个线性表是n个具有相同特性的数据元素的有限序列,除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的(大部分是这样子)。线性表的实现有4种,顺序表、单链表、双向链表和循环链表。线性表的接口定义: interface IListDS<T> { int GetLength();//求长度 void Clear();//清空操作 bool isEmpty()
2022-02-11 17:58:29
3279
原创 获取范围内指定个数不重复随机数
/// <summary> /// 获取范围内指定个数不重复随机数 /// </summary> /// <param name="min"></param> /// <param name="max"></param> /// <param name="count"></param> /// <returns></returns>
2022-02-08 10:27:05
471
原创 Unity 对象池
对象池原理:存放对象的缓冲区。用户可以从缓冲区中放入/取出对象。满足游戏中经常产生/销毁大量相同游戏对象的需求(比如金币、宝箱、特效)。对象池可以避免重复性的Instantiate和Destroy,进而提高游戏性能。using System.Collections.Generic;using UnityEngine;using DG.Tweening;public class Pool : MonoBehaviour{ public static Pool Instance;
2022-01-19 18:25:02
2380
原创 Unity 贝塞尔曲线 优化画线平滑
贝塞尔曲线 优化画线平滑在代码中调用下面这个方法,传入自己所要平滑的曲线的点的List列表,BezierCheck()会计算出每2个点之间需要补充多少个贝塞尔补间的点。 private static Vector3 pos1; private static Vector3 pos2; private static Vector3 pos3; private static Vector3 new_pos1; private static Vector3 new_pos
2022-01-19 17:25:55
2125
原创 Unity 延时的三种方法
协程在代码中开启与关闭协程StartCoroutine(IName());//开始协程StartCoroutine("IName");//开始协程StopCoroutine("IName");//关闭协程协程方法 public IEnumerator IName() { yield return new WaitForSeconds(0.5f);//延时0.5秒再继续向下执行 }Invoke 方法实现延时委托机制,不接受有参数的方法,Time.Sca
2022-01-15 16:59:27
9454
1
原创 Unity 相机自适应不同分辨率
不同分辨率适配下列 750 1334 是我屏幕的分辨率,可以将数值更换成自己的。直接挂在主摄像机上。using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.UI;//近大远小的摄像机public class ShiPei : MonoBehaviour{ void Awake() { float targetHight = 1334f; if (75
2022-01-15 11:45:36
1705
原创 Unity 3D射线检测指定层级
3d射线 返回屏幕射到的hit 只检测我们指定的渲染层级1 << 12 打开第10的层。 等同于1 << LayerMask.NameToLayer(“Name”); 也等同于 LayerMask.GetMask((“Name”); #region 3d射线 返回屏幕射到的hit 只检测我们指定的渲染层级 public static RaycastHit RayHit() { Ray ray = Camera.main.ScreenPoint
2022-01-15 11:02:17
2823
原创 Unity 2D和3D射线检测
2D射线检测 //Canvas事件点击检测,返回光线投射结果 public List<RaycastResult> click2DItem() { PointerEventData pointerEventData = new PointerEventData(EventSystem.current); pointerEventData.position = Input.mousePosition; GraphicRayca
2021-12-24 16:52:09
2296
原创 Unity 计算两点距离的两种写法
写法一 public float GetDistance(Vector3 startPoint, Vector3 endPoint) { float distance = (startPoint - endPoint).magnitude; return distance; }写法二 public double GetDistance(Vector3 startPoint, Vector3 endPoint) { d
2021-12-24 16:24:42
2901
2
原创 Unity打包到安卓平台找不到json文件路径
读取json文件的路径修改前:原读取json的代码,运行unity时,可以正常获取到json信息,但是build到安卓平台的时候,无法读取到json文件。 string s = File.ReadAllText(Application.dataPath + ("/config/config.merge.json"));原因:在编译到安卓平台上时,会将资源压缩成一个压缩包,这种时候就不能使用Application通过路径读取json文件。修改后:首先将json文件移动到StreamingAsset
2021-12-07 18:22:24
6218
原创 Unity3D初级工程师面试题及知识点
Unity3D初级工程面试题目整合C#基础部分一、修饰符二、委托、事件和回调函数三、接口跟抽象类的区别是什么?什么时候使用接口?什么时候使用抽象类?四、值类型跟引用类型的区别?五、游戏优化,如何优化减少GC?六、三元运算符七、面向对象编程的六大原则?八、struct 里面如果包含一个类的对象,该对象是存在堆区还是栈区?九、委托和接口的区别与应用?十、对于多态的理解?十一、list和array的区别?十二、List和ArrayList的区别?十三、如何在C#中使用LitJson对Json数据解析?十四、面向对
2021-10-17 18:19:53
6436
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人