- 博客(78)
- 资源 (11)
- 收藏
- 关注
原创 C#中的Json解析(通过Newtonsoft.Json)
假如读取这个json{ "PersonInfo": [{ "id": 1, "name": "小红", "age": 16, "isMale": false }, { "id": 2, "name": "小明", "age": 18, "isMale": true } ]}对应的读取方式var jsonObj= JObject.Parse(jsonStr);var infoArray= jsonObj.Value<JArray
2022-05-21 11:56:30
889
1
原创 CocosCreator 栈的实现
import { _decorator, Component, Node } from 'cc';const { ccclass, property } = _decorator;interface StackData<T> { [index: number]: T;}@ccclass('Stack')export class Stack<T> { private items: StackData<T> = {} private c.
2022-05-06 09:40:09
239
原创 CocosCreator 字典实现
export class Dictionary<KT, VT> { private keys: KT[] = []; private values: VT[] = []; private isCache: boolean; public get count(): number { return this.Count(); } public constructor(isCache: boolean = false) { this.isCache = isCache; }
2022-05-06 09:38:00
641
原创 cocosCreator 事件系统
import { Dictionary } from "./Dictionary";let eventMap: Dictionary<string, Array<any>> = new Dictionary<string, Array<any>>();export default class EventManager { public static AddListener(eventName: string, callback: any, t
2022-05-06 09:35:17
323
原创 CocosCreator 工具类(持续更新)
import { _decorator, Component, Node, Vec2, Vec3, Quat, Camera, UITransform, view, log } from 'cc';const { ccclass, property } = _decorator;export default class Util { static physicsMoveFactor: number = 70; /** * 返回 min ~ max 的随机数 *
2022-04-29 17:09:41
818
1
原创 JoyStick摇杆实现
import { _decorator, Component, Node, EventTouch, Vec3, log, input, Input, UITransform, Vec2 } from 'cc';const { ccclass, property } = _decorator;/** * Predefined variables * Name = JoyStick * DateTime = Tue Apr 12 2022 11:34:25 GMT+0800 (中国标准时间) *.
2022-04-12 15:43:48
668
原创 使用UnityHub打不开Unity
使用UnityHub打开Unity没反应,不弹出任何提示这个时候直接去打开对应版本的unity,别从hub打开,然后会提示你缺少什么文件,你把缺少的这些东西安装了就行
2022-03-04 09:39:23
5604
1
原创 ECS创建实体
ECS创建的实体无法显示,发现要加一个RenderBounds组件才能显示出来例子using System;using System.Collections;using System.Collections.Generic;using Unity.Entities;using Unity.Rendering;using Unity.Transforms;using UnityEngine;public class Test1 : MonoBehaviour{ public Ma
2022-02-22 11:59:22
237
原创 根据顶点创建Cube Sphere
using System;using System.Collections;using System.Collections.Generic;using System.Linq;using UnityEngine;public class CreateModelByVertices : MonoBehaviour{ public int _resolution; private GameObject _Root; private MeshData[] _meshDat
2022-02-17 17:29:06
230
原创 根据视野内物体的动态调整相机的拍摄范围
仅对2D游戏下的正交相机适用using UnityEngine;public class OrthogonalCamera2D : MonoBehaviour{ [Header("四周边框留白")] public float _buffer = 0; private Camera _cam; private void Awake() { _cam = GetComponent<Camera>(); } private
2022-02-16 17:34:30
3501
原创 在屏幕范围内随机生成物体
需要在当前视野范围内随机生成物体时使用,比如在屏幕上生成烟花等特效。。 /// <summary> /// 根据距离摄像机的位置得出平面范围 /// </summary> /// 0 1 /// 3 2 /// <param name="distance">平面与相机的距离</param> /// <param name="cam">相机</param> ///
2021-11-30 10:07:38
4510
2
原创 二叉树的遍历
public class TreeNode{ public string val = ""; public TreeNode left = null; public TreeNode right = null; public TreeNode(string val) { this.val = val; }}广度优先遍历英文缩写为BFS即Breadth FirstSearch。其过程检验来说是对每一层节点依次访问,访问完一层进入下一层
2021-09-06 12:04:46
122
原创 世界坐标转屏幕坐标 overlay模式下
在overlay模式下直接将屏幕坐标的值赋值给ui的世界坐标就行了 private void UpdateImgPos() { var position = transform.position; var camera = _cameraController.MainCamera; var screenPos = camera.WorldToScreenPoint(position); _rectTransImg.positi
2021-08-24 09:48:42
301
1
原创 关于坐标转换 ScreenToWorldPoint
当使用ScreenToWorldPoint(Vector3 position)进行坐标转换时如果z坐标的值为0或很小比如零点几,可能会导致得出的世界坐标错误,永远是相机的位置手动给z轴一个较大的值就行了,可以直接给Camera.farClipPlane例如uiCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, uiCamera.farClipPlane));...
2021-07-27 14:15:11
643
1
原创 使用LineRender实现画布功能
1.在Canvas下面创建一个Image作为画布2.给画布添加Collider2D,使用碰撞器检测画笔的进出3.创建一个空物体,挂上LineRenderer组件作为画笔画笔脚本using System.Collections;using System.Collections.Generic;using UnityEngine;[RequireComponent(typeof(LineRenderer))]public class DrawPen : MonoBehaviour{
2021-07-16 11:13:46
449
原创 一些排序算法
冒泡排序 private void BubbleSort(int[] array) { bool isSwapped; for (int i = 0; i < array.Length; i++) { isSwapped = false; //经过这一趟 最大的数已经到底 for (int j = 0; j < array.Length - 1 - i; j++
2021-07-15 16:08:31
83
原创 物体跟随鼠标移动而旋转
想实现的效果:刀尖朝向Z轴正方向,刀刃朝向X轴正方向,使得刀刃的方向随鼠标移动而改变,鼠标向左移动刀刃向左,鼠标向上移动刀刃向上,鼠标向右上移动刀刃向右上,其他任何方向也一样思路:1.根据鼠标上一帧和当前帧的点得出鼠标的移动方向向量P2.获取刀刃方向3.两向量点乘得出旋转角度4.两向量叉乘得出旋转方向5.由当前Rotation 围绕旋转轴的指定方向旋转指定角度 得到新的Rotation,也就是,使刀从刀刃方向旋转到P方向6.记得使用插值,这样会旋转得比较平滑ps:附加刀绕着某个点移动的效
2021-07-01 12:02:43
401
原创 SkinnedMeshRenderer的切割问题
如果做刀剑类的游戏则会涉及到网格的切割推荐一个网格切割插件EzySlice用这个插件可以很方便的切割网格但是有一个问题,对应用了SkinnedMeshRenderer的模型无法切割解决方法:1.将SkinnedMeshRenderer中的网格烘焙,这是我们会得到一个mesh2.我们在模型的位置创建一个空物体,添加上MeshRenderer和MeshFilter组件,然后将所得的mesh和原模型的材质给这个新物体3.将原物体隐藏这样当我们要切割的时候创建一个新物体来切割,将原物体隐藏,效果看
2021-07-01 11:41:31
335
原创 使TrailRenderer 不受TimeScale影响
如果使用TimeScale控制游戏的慢镜头那么TrailRenderer会出现残留在屏幕上的时间过长的问题使用下面代码可以使TrailRenderer 不受TimeScale影响using System.Collections;using System.Collections.Generic;using UnityEngine;public class TrailRenderController : MonoBehaviour{ private TrailRenderer[] tra
2021-07-01 11:29:30
428
原创 OnCollisionEnter 无效 没有触发
测试了很久发现是isKinematic的问题如果两个物体的rigidbody的isKinematic参数都为True那么OnCollisionEnter 函数是不会触发的你取消其中一个的勾选就行了
2021-06-30 15:39:44
2009
原创 Animator 使用SetTrigger设置动画后自动切回别的动画
在使用Animator时遇到一个坑 就是使用SetTrigger的问题当你重复set一个状态比如SetTrigger(“A”) 做了两次然后你SetTrigger(“B”) 这时候 它可能会自动再切回A动画使用ReSetTrigger取消A的触发就能解决了可以在初始化的时候把激活的Trigger全部ReSet一遍代码如下 public void ResetAllTrigger() { AnimatorControllerParameter[] aps = an
2021-05-20 16:11:17
2958
1
原创 Xlua 导入Action
[CSharpCallLua] public static List<Type> CSharpCallLua = new List<Type> { typeof(UnityEngine.Events.UnityAction<bool>), typeof(System.Action<bool>) };
2021-05-11 09:14:56
537
原创 Xlua导入DoTween
在Xlua的ExampleConfig.cs脚本中加入[LuaCallCSharp] public static List<Type> mymodule_lua_call_cs_list = new List<Type>(){ typeof(DG.Tweening.AutoPlay), typeof(DG.Tweening.AxisConstraint), typeof(DG.
2021-05-11 09:14:23
573
原创 用UI表现3D物体是否超出边界的提示
public void Init(Transform target, Camera gameCamera = null) { _target = target; _gameCamera = gameCamera; } void UITipsPosCtrl() { if (_target == null) return; //世界坐标转视口坐标 var veiwPos = _gameCa...
2021-04-16 17:42:41
205
原创 设置ScrollView中content位置导致content会自动移动
当你进入ScrollView中需要充值content位置时如果直接设置content到0会导致content自动移动那把ScrollView的滑动模式改成Elastic就行了
2021-04-01 11:04:25
798
原创 从鼠标点击位置发射射线检测是否点击到3D世界中的物体
if (Input.GetMouseButtonDown(0)) { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit, 5000)) //如果碰撞检测到物体 { Debug.Lo...
2021-03-31 14:25:02
283
原创 Unity 判断是否点击到某个按钮
private void Update() { if (Input.GetMouseButtonDown(0)) { if (EventSystem.current.currentSelectedGameObject == null || EventSystem.current.currentSelectedGameObject.name != "ButtonName") { De...
2021-03-23 15:05:18
5045
原创 RerderTexture 在手机上变黑 在电脑上正常显示
在ui上使用RenderTexture 渲染3D模型的时候该RenderTexture所在的面板实例化 必须在模型和渲染该RenderTexture的相机之前也就是说 UI上得先有RawImage 然后再有模型和渲染该模型的相机同时出现也可以但是RawImage所在UI面板不能再 模型和渲染该模型的相机之后实例化...
2021-03-19 10:37:15
1348
原创 关于RenderTexture中背景部分 不受Camera中SolidColor的透明度控制
今天在将模型渲染到UI上的时候,RanderTexture中的背景部分不受Camera中SolidColor的透明度控制导致无法去除背景色通过一段时间的排除,发现是渲染设置的问题打开ProjectSetting/Graphics1.将Tier Setting中的Use Default勾上,主要是要勾High那一栏的2.如果你不想勾Use Default 那就把Use HDR去掉3.如果你也不想去掉Use HDR 那就把HDR mode 改成FP16...
2021-03-09 11:32:57
1264
3
原创 Button 点击没有反应
原因:检查一下你是不是把button TargetGraphic目标翻转了180度因为UGUI的射线检测默认只检测正面解决办法:在你的button检测目标也就是 TargetGraphic目标上加个GraphicRayCaster组件,把IgnoreReversedGraphics取消勾选...
2021-03-08 16:45:21
2000
原创 正则表达式快速入门
限定符?代表前面一个字符出现0次或1次例子:dj?d 匹配dj 匹配djjj 不匹配*代表前面一个字符可以出现0次或任意次例子:abcac 匹配abc 匹配abbbc 匹配adc 不匹配*+代表前面一个字符出现1次及以上例子:ab+cac 不匹配abc 匹配abbbc 匹配adc 不匹配限定字符出现次数ab{3}c 代表b出现3次ab{3,6}c 代表b出现3到6次ab{3,}c 代表b出现3次及以上想同时对多个字符限定时
2021-02-23 11:53:26
164
1
原创 简单刚体移动和转向
private void Move () { var MovementInputValue = Input.GetAxis (m_MovementAxisName); // Create a vector in the direction the tank is facing with a magnitude based on the input, speed and the time between frames. ...
2021-02-20 18:06:51
191
原创 AB资源加载出来材质丢失
首先确定你加载该资源的时候把他依赖的资源全都加载了如果加载了依赖仍然丢失,检查你选的是不是安卓平台,如果你选的是安卓平台,但是在编辑器下有可能测不出来,你要打包到安卓去测一下。亲测:在编辑器下材质丢失,但是在手机上没问题...
2021-02-05 10:56:13
534
原创 Xlua 使用中...
当我想对一个item类打hotfix想重写时,我先进行了这样的操作Lua_UITreasureChest = {}Lua_UITreasureChest.self = nilLua_UITreasureChest.data = nilxlua.hotfix( CS.UITreasureChest, "Lua_Awake", function(self) Lua_UITreasureChest.self = self end)然后我发现不管我怎
2021-01-29 16:34:10
144
原创 关于Animator播放动画的时鬼畜的那件事
背景:在一个场景中生成多个角色时,当角色的Idle动画时长大于每个角色生成间隔时,如果在生成角色时顺便绑定动画事件,并且这几个角色是同一个预制,换句话说,就是这几个角色用的是同一个状态机或者Idle动画,那么很可能导致第一个生成出来的角色播放Idle动画是鬼畜,表现就是Idle动画会在角色生成时从头播放,造成一卡一卡的现象。原因:动画事件的重新重复绑定所导致解决办法:第一种:动画事件全局只绑定一次,不要再每个角色生成时重复绑定第二种:绑定动画时过滤掉重复动画...
2021-01-13 10:02:32
225
原创 unity TextMeshPro不显示问题
TextMeshPro中的文本不显示,更改该组件上的任意参数后显示解决办法:检查该物体是否做了动画,如果做了动画且动画中scale从0开始这将从0开始改为从0.001开始
2021-01-05 15:30:47
5364
BehaviorDesigner&MovementPack.zip
2021-12-04
RayFire_v1.34.zip
2021-07-21
布料系统-----------------------------------------
2021-01-13
unity.xmind
2019-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人