自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 收藏
  • 关注

原创 【Lua】 简易二叉树

【代码】【Lua】 简易二叉树。

2024-05-17 16:08:07 98

原创 【Lua】快速排序

【代码】【Lua】快速排序。

2024-05-15 17:23:46 245

原创 【cocos-2dx】更换对象节点

--需要被移动的对象 local logo = util_createAnimation(CashSpinConfig.URL.Logo) --需要挂载到一个节点上 不然就被自动释放掉了 self:findChild("node_logo"):addChild(logo) --要转移到的目标对象 local node = self:findChild("node_sale") --内存持有对象 不释放 ...

2022-04-25 11:33:21 272

原创 【cocos-2dx】转换坐标系设置位置的几个步骤

--先获取当前csb下要将目标对象设置到的那个节点 local node_logo = self:findChild("node_logo") --将其转换成世界坐标 local worldPos = node_logo:getParent():convertToWorldSpace(cc.p(node_logo:getPosition())) --获取目标对象 local logo = self.m_classicSlot:.

2022-04-25 10:36:34 602

原创 【unity】归纳与面试准备(持续更新...)

一 、算法1. 冒泡排序 public class BubbleSort:ISort { public void sort(int[] arr) { for (int i = 0; i < arr.Length-1; i++) { for (int j = 0; j < arr.Length-i-1; j++) { .

2021-08-26 16:04:38 673

原创 【Unity项目】登录界面

数据库登录时验证用户名和密码,使用MySQL数据库管理数据,类中的主要方法也都是使用SQL语句完成。类中还提供两个接口, 一个通过username获取UserInfo ,一个是直接获取到排行榜。数据库连接类using System;using MySql.Data.MySqlClient;using UnityEngine;public class MySqlAccess{ //连接类对象 public MySqlConnection mySqlConnection;

2021-08-23 17:33:07 2088

转载 【Unity】A星寻路算法 + Demo示例

A寻路算法的估量代价*在A算法中核心的寻路依据就是估量代价,在A中通常用 F 表示。F = G + H其中G表示当前点到起始点的估量代价 ,H表示当前点到终点的代价。G的计算方式:最开始,以起点为中心开始计算周边的八个格子,然后在以这算出来的八个格子为中心,继续计算他们周围的八个格子的G值。以此类推,直到找到终端,或遍历完所有的格子。G值的计算结果为:中心点的G值+距离值【10 or 14】A*算法步骤1.设置开放列表OpenList和关闭列表CloseList2.将起点放置到OpenL

2021-07-16 21:00:55 651

原创 【Unity框架】JSON配置类

序列化数据模型{ [System.Serializable]//序列化 public class AssetPathConfig { public AssetNameAndPath[] AssetPathConfiguration; } [System.Serializable] public class AssetNameAndPath { public string AssetName; publ

2021-07-13 20:13:07 224

原创 【Unity框架】对象池

代码:单例using System;namespace Frame.Utility{ /// <summary> /// 单例基类【单例子类必须创建一个私有无参的构造】 /// </summary> /// <typeparam name="T"></typeparam> public class Singleton<T> { private static T instan.

2021-07-12 16:43:18 245 2

原创 【Unity策略模式】角色攻击策略的不同 (不使用collider||Trigger)

/// <summary>/// 攻击策略/// </summary>public abstract class AttackStrategy{ /// <summary> /// 攻击 /// </summary> /// <param name="attackTarget">攻击目标</param> /// <returns>给攻击目标造成的伤害</returns&.

2021-07-09 17:27:50 311 2

转载 【网格导航报错解决方案】:SetDestination“can only be called on an active agent that has been placed on a NavMesh

"SetDestination"can only be called on an active agent that has been placed on a NavMesh <div class="blog-tags-box"> <div class="tags-box artic-tag-box"> ...

2021-06-22 10:14:36 906

转载 【Unity】Particle System 下雪粒子特效

一 制作下雪粒子特效1 添加Particle System(1)Hierarchy窗口右键 > Effects > Particle System(2)新建一块Plane作为地面,并且把Particle Syetem位置移到Plane上方。(3)旋转Directional Light,使背景变暗(随意即可),便于观察。2 设置Shape模块Shape模块定义粒子发射器的形状,可提供沿着该形状表面法线或随机方向的初始力,并控制粒子的发射位置及方向。设置参数,扩大发射盒体积,粒子将会从发射器内随机发

2021-06-11 11:18:44 3273

原创 【Unity基础】有限状态机简易框架(控制怪兽AI状态)

状态的基类声明所有的状态 和 状态转换声明一个字典 key为枚举类型的状态转换 , Value为状态基类**addTransition(ETransition transition, StateBase state)**往字典里面存数据两个抽象方法:action() 、 condition()子类状态重写抽象方法实现各自的当前状态下的行为 、 进入该状态的条件两个虚方法:doBeforeExit() doBeforeEnter()子类可以选择性实现进入状态前做的事情 、 离开当前状态前做

2021-06-08 20:13:13 474 2

转载 AbortType打断任务 Sequence - 【Abort Type】属性

设置Sequence的中断类型 None:没有打断 Lower Priority:中断同级的任务,即中断Seek任务 作用:只要行为树还在执行的时候,其子级(Can See Object)就会一直在执行。也就是说Can See Object随时在检测,只要它检测到了目标,那么它就会返回一个True,这时Sequence也会跟着返回true,而Selector是或操作,所以Seek中断不会执行了。 备注:如果目标一旦进入范围内,则巡逻角色不管目标是否离开范围内,都会一直跟踪 个人理解:角色一旦被

2021-06-08 14:51:53 306

原创 【Unity基础】在2d的界面中获取鼠标的坐标

思路:主要用到了 RectTransformUtility里面的ScreenPointToLocalPointInRectangle函数public static bool ScreenPointToLocalPointInRectangle(RectTransform rect, ----- 希望得到坐标结果的父对象Vector2 screenPoint, ----- 鼠标位置Camera cam, ----- UI摄像机out Vector2 localPoint); ----- 相对

2021-06-07 17:11:02 2535

原创 【Unity基础】RigidBody 、CharacterController控制角色移动

首先要给角色添加刚体和碰撞器:注意刚体下面的Contrains选项里面选择冻结刚体的旋转 不然对人物施加力的时候会摔倒代码using System.Collections;using System.Collections.Generic;using UnityEngine;[RequireComponent(typeof(Rigidbody))]public class PlayerRig : MonoBehaviour{ Rigidbody rig; Animator a

2021-06-02 11:52:36 2390 2

原创 【Unity基础】人物控制的三种方式(键盘)、(鼠标)、(键鼠)

先看效果:(键鼠):人物会随着指针转动,WASD控制人物移动。鼠标键盘就是去除掉键鼠的看向鼠标指针,改成看向最后方向代码: using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.AI;using UnityEngine.EventSystems;public enum EControlType{ KeyBrd, Mouse,

2021-06-01 14:17:04 1406 1

原创 【Unity】为什么按钮点击没反应

按钮的名字能打出来 , 点击事件却进不去你大概率不小心把EventSystem给删了右键点击hierarchy面板创建一个新的就行了成功 玛德又找了好长时间…

2021-05-28 09:54:45 1854 1

原创 【Unity基础】Unity的事件系统 ------ Player的等级变化引起一系列的变化

工具类:能避免重复挂载事件 用来代替默认的事件using System;namespace Utils{ /// <summary> /// 能避免重复挂事件的默认委托 /// </summary> public struct SafeAction { Action act; public static implicit operator Action(SafeAction a) {

2021-05-24 21:06:02 283

原创 【Unity基础】UI——小地图的制作 && UI界面显示人物模型

小地图的制作【思路】小地图的主要思路是用摄像机拍摄以人物为中心的一小步部分区域,把拍摄的图片实时渲染到UI界面的Img图片上。首先需要一个摄像机 , 用来垂直拍摄人物的头顶,把模式改成正交模式,这样就不会产生近大远小的效果。(摄像机最好不要放在人物的游戏物体下面,不然人物进行转方向的时候摄像机也会旋转,小地图也会跟着旋转。除非原本想实现这种效果可以放在人物的游戏物体下面)纹理渲染需要用到【Texture Render】 , 新建一个Texture Render挂载到Camera上,然后在UI界面的

2021-05-20 10:17:14 1225

原创 【Unity基础】FlappyBird中2D地图的无限回滚

在默认设置下贴地图纹理的话会导致当着纹理走完后面就会变成最后像素的的颜色 这是因为默认的Wrap Mode是Clamp(夹值)TextureWrapMode.Clamp将纹理限制于边缘处的最后一个像素。如果要将图像映射到对象上而您不希望平铺纹理,并且要防止换行瑕疵,这非常有用。UV 坐标将限制在 0…1 范围内。当 UV 大于 1 或小于 0 时,将使用边界上的最后一个像素。Texture.wrapModeU:纹理 U 坐标换行模式。控制沿纹理 U(水平)轴的换行模式。Texture.wra

2021-05-17 11:03:41 367

原创 【Unity基础】之后可能会用到的【SL功能(存档&读档)】

存档思路:玩家的位置信息和角度信息全都用stringbao保存,x,y,z之间用"_"分开,等到先要读数据时使用Split()切割字符串获取数据。怪物数据在保存时每个Key后面加上自己的ID值(这里图方便就用for循环里的"i"代替了)。等到取数据时就可以找到各自的值。public void save() { //1、保存玩家信息 PlayerController controller = GameObject.FindGameObjectWithTag("

2021-05-13 10:37:12 228

原创 【Unity基础】太空大战中的 【子弹发射器】&&【散射、追踪子弹】

好处把射出子弹抽象出一个类,专门管理射出子弹的一系列动作,这样的话就没必要在每个类中写生成子弹,还可以方便改变子弹的发射方式:通过显示其中一个GameObject选择子弹发射方式子弹发射器类:using System.Collections;using System.Collections.Generic;using UnityEngine;using UnityEngine.Events;/// <summary>/// 子弹数据初始化功能/// </summa

2021-05-12 21:34:44 1344 1

原创 【Unity基础】异步调用与协程 Invoke && Coroutine (附加一些小例子)

异步调用:InvokeInvoke 调用的函数不能带参数Invoke(“printCount”, 2); 表示经过2秒钟之后调用printCount函数InvokeRepeating(“printCount”, 3, 1); 经过3秒钟之后调用printCount函数,之后每隔1秒调用一次该函数IsInvoking() 判断是否有通过Invoke方式调用的函数CancelInvoke(); 取消这个脚本上所有的调用CancelInvoke(string methodName); 取

2021-04-30 16:06:27 1492

原创 【Unity基础】Time实现一个间隔时间做某事&每秒移动x米

实现间隔时间做某件事Time.time实现 float nextTime; float rate = 2.0f; void Update() { if (Time.time>nextTime) { nextTime = Time.time + rate; //做某事的代码 } }Time.deltaTime实现float rate = 2.0f;void Up

2021-04-24 14:59:28 3879

原创 【Unity基础】day2整理 -----小球吃金币2

功能实现:制作游戏中的多种道具,如金币,血瓶等,各种道具具有的外观和功能都不一样,通过代码方式往地图中随机生成这些道具,通过管理器进行管理,保证生成的所有道具都不能重叠到一起,玩家碰到道具可以获取,道具消失功能一:道具的随机生成思路:先传入需要生成的预设体对象,存到GameObject[] itemPrefabs数组中。GameObject[] itemPrefabs;void Start() { itemPrefabs = new GameObject[3];

2021-04-23 17:21:11 2663

原创 【Unity基础】day1整理 -----小球吃金币

小球先搭一个场地Plane,命名Map ,通过将四个墙的立方体归入Map,可以同时控制大小。分别赋予场地和墙的材质创造一个小球Player 赋予材质和刚体,因为要实现键盘操作控制小球,因此需要写脚本挂载到Player上。using System.Collections;using System.Collections.Generic;using UnityEngine;// 所有能够挂载到游戏对象的组件都要继承 MonoBehaviour // 文件名和类名保持一致,如果不一致就不能挂载在

2021-04-20 17:15:34 3006

原创 C# ------ 快速排序思路

基本思想:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。排序步骤:(1)设置两个变量i、j,排序开始的时候:i=0, j=N-1(2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];(3)从j开始向前搜索,即由后开始向前搜索(j–),找到第一个小于key的值A[j](4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个

2021-04-17 16:13:26 144

转载 c# -----【插入排序】算法

思想插入排序的思想有点像打扑克抓牌的时候,我们插入扑克牌的做法。想象一下,抓牌时,我们都是把抓到的牌按顺序放在手中。因此每抓一张新牌,我们都将其插入到已有的排好序的手牌当中,注意体会刚才的那句话。也就是说,插入排序的思想是,将新来的元素按顺序放入一个已有的有序序列当中。举个例子可能更容易理解一些,假设有这样一系列数字:8 2 4 9 3 6 首先我们考虑数字2,假设后面的数字不存在(手中只有一张8,又抓来了2),那么显然2应该放在8的前面。2 8 4 9 3 6 又抓来了一张4,现在大家都知道

2021-04-17 09:49:15 68

原创 封装扑克牌类实现斗地主发牌、选地主、找顺子

将Card封装起来类中有花色和点数,继承IComparable接口,后面排序时会用到,用CompareTo方法定义排序方式。 enum EColor { 红桃, 方片, 黑桃, 梅花, 大王, 小王 } class Card:IComparable { int cardNum; EColor cardColor;

2021-04-14 21:29:00 252

原创 成员属性get、set的三种写法

第一种现在基本不会这么写,定义两个方法作为“中间人”传递、改写数据 public class Stduent { string name; public string getName() { return name; } public void setName(string name) { this.name = na

2021-04-12 14:08:03 656

原创 C#学习笔记 ------ 【接口Interface】

接口指定了一组函数成员 , 在类和结构体中实现。举个例子 , 接口就像是一种能力 , 继承这个接口的类就会获得这个能力,接口的引用指向已经获得这个能力的类的对象(在方法中会程序会自行判断该类究竟是谁)编写一个接口实现中国名字和外国名字声明一个接口interface IMsg { //都是抽象函数 , 默认都是public , string getName(); int getAge(); }定义一个中国名字类继承接口IMsgc

2021-04-10 17:50:51 108

原创 C#学习笔记 ------ 【事件EVENT】

一、发布者和订阅者很多程序有这样─种需求:当程序中的一个特定事件发生之后,程序的其它部分可以得到该事件已经发生的通知。发布者/订阅者模式可以满足这种需求。在这种模式下,发布者类定义了一系列程序的其它部分可能感兴趣的事件。其它类可以"注册",以便在这些事件发生时,发布者可以通知它们。这些订阅者类通过向发布者提供一个方法来"注册"以获取通知。事件发生时,发布者"触发事件",然后执行订阅者提交的所有事件。由订阅者提供的方法称为回调方法,因为发布者通过执行这些方法来"往回调用订阅者的方法"。还可以将它们称为事

2021-04-10 14:58:48 74

原创 C# 学习笔记 ------【委托】&【匿名函数】

一 、委托委托和类一样是一种自定义类型, 委托表示持有一个或者多个方法。使用委托的步骤:(1)声明一个委托类型delegate void DelVoid(); //声明一个委托类型,类型名:DelVoid(2)使用委托类型定义一个委托变量 DelVoid delVoid; //定义一个委托变量(3)创建委托对象,赋值给委托变量。新的委托对象包括某个指向方法的引用,这个方法和第一部定义的签名和返回类型一致delVoid = new DelVoid()delVoid = new DelVo

2021-04-10 14:32:34 571

原创 C#打印菱形(for循环练习)

Console.WriteLine("输入一个数"); int num = Convert.ToInt32(Console.ReadLine()); for (int i = 1; i <= num; i++)//上层控制行数 { for (int k = num - 1; k >= i; k--)//打印空格 { Con

2021-04-04 15:56:56 762

原创 二维数组问题:从键盘输入二维数组行列值,往数组中随机填充0-50之间的数字,二维数组中数据先行后列方式从大到小的顺序排列后以矩阵形式输出,并且计算两条对角线的数字之和。

思路:1.先定义一个一维数组和一个二维数组,一维数组的大小和二维数组大小相等,2.二维数组元素放到一维数组中 ,用冒泡排序等方法对一维数组进行排序,3.然后在将一维数组放到二维数组中,4.最后将二维数组中数据先行后列方式从大到小的顺序排列后以矩阵形式输出封装的冒泡排序方法↓ static void sortArr1(int[] arr1) { for(int i = 0; i < arr1.Length - 1; i++)

2021-04-04 15:48:46 1483

原创 一维数组的扩容和锯齿数组

数组扩容①定义两个数组,②b[]数组长度始终比a[]大1,③ 将a[]数组中所有数全部赋值给b[] public int[] ArrExp(int[] x, int[] y) { int[] a = new int[10]; int[] b = new int[a.Length + 1]; for (int i = 0; i < a.Length; i++) { b[i] = a[i];

2021-04-04 15:07:26 99

原创 冒泡排序和选择排序

一、冒泡排序int[] arrNum = {12,35,99,18,76 }; //冒泡排序 for(int i=0;i<arrNum.Length-1;i++)//多少趟比较(N-1) { //每一趟有多少次比较(N-1-i)次 for(int j=0;j<arrNum.Length-1-i;j++) {

2021-04-04 14:47:35 70

原创 C# 简单美化控制台输出的文本

C# 简单美化控制台输出的文本该方法通过遍历出每个字符的长度来算出应该输出多少个横杠, 因为左右两边的竖杠,起始值为2。最开始想用Encoding.Default.GetByteCount()直接的算出一共的字符长度,发现中文字符经过编译后不一定都是2个字符,所以要加个判断分别输出。using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Ta

2021-04-04 12:37:51 718

原创 C# 面向对象 创建一个图书管理系统

这个系统需要两个类:class Book,class BookManager![在这里插入图片描述](https://img-blog.csdnimg.cn/20210402213450594.png#pic_center)首先先进行对Book类成员的声明。```class Book { //数据 string id; public string Id { get { return id; } .

2021-04-02 22:26:37 1029

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除