- 博客(15)
- 收藏
- 关注
原创 Unity与C#以及C++跟算法
同时很多项目会在我的github上进行开源。欢迎大家的关注,如果可以的话请不要吝啬你的小心心,希望我们可以一起进步,朝着更强大技术力的自己前行。wyryyds.github.io上更新。欢迎大家一起学习交流!
2022-10-08 12:24:23 662 1
原创 Unity和C#的委托与事件的个人笔记
委托是一种引用类型的类。类似cpp函数指针。委托的基础使用就是快速去间接调用某些方法。C#system库自带委托:Action 委托无返回值(void)Func 委托必须有返回值。委托的常用在作为参数传入某个方法,同时在委托里面间接调用其他方法。实现多方法的快速耦合。缺点:委托的多播会造成内存泄漏:委托会引用一个方法,如果这个方法是一个实例方法(非静态方法)的话,那么这个方法必须隶属于一个对象,拿一个委托引用这个方法,那么这个对象必须存在在内存中,即便没有其他引用变量引用这...
2022-06-12 10:45:32 309
原创 Unity实现读取Excel文件
我们都知道Unity有自带的类textAsset可以简单地读取Text文本的内容。但在实际的开发过程中,我们不可避免地会与excel 或者 json这些文件类型打交道,今天也是花了点时间,整理出来了如何简单地实现读取excel文档的功能。首先我们先导入三个拓展库。存放在文件夹Plugins(自建)下面。链接: https://pan.baidu.com/s/1jRSOjiDvdoNyF0eSezz6Kw?pwd=twtn 提取码: twtn我们先自定义两个类。using System.
2022-05-22 20:00:23 10259
原创 静态单链表
静态单链表的实现:开一个n数组存储我们的数据域,开一个ne数组储存我们的指针域(形式上)。idex表示当前操作位置。#include<bits/stdc++.h>using namespace std;const int N=1e5+10;int head,idex, n[N],ne[N];void init(){ head=-1; idex=0;}void add_head(int x){ n[idex]=x; ne[idex]=head
2022-05-21 12:00:19 287
原创 力扣85题最大矩形题解
给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵,找出只包含 1 的最大矩形,并返回其面积。示例 1:输入:matrix = [["1","0","1","0","0"],["1","0","1","1","1"],["1","1","1","1","1"],["1","0","0","1","0"]]输出:6解释:最大矩形如上图所示。示例 2:输入:matrix = []输出:0示例 3:输入:matrix = [["0"]]输出:0示
2022-05-20 20:31:30 826
原创 Unity第一人称控制器
不得不说,unity最新的轻量级角色控制器搭配新输入系统确实好用。不过我不会(doge)。想学习的小伙伴可以直接在Hub里面下载unity的第一人称控制器模板,个人觉得非常适合学习。简单的第一人称控制器需要解决的事情无非三件:角色的移动,相机的旋转,重力的模拟。对于相机的旋转,我们希望在x轴上它应该是可以实现360度的,因为角色身体的旋转在x轴是随意的,但是在上下方向也就是y轴上,我们并不希望跟随视角的转动角色可以从将它的头反转过来,比较合理的处理是限制在-90度到90度之间。以下是相机代码部分
2022-05-20 11:54:40 2815
原创 unity更优秀的跳跃手感(简单物理小知识)
在物理上,一个物体的跳跃跟落下,时间应该是相等的。我们都知道对于Unity内置的游戏物理引擎,它们也是这样来处理最简单的跳跃的运动。但其实这样的效果并不是我们所想要的。可以想象,一个角色跳上去,然后轻飘飘的落地,这样的手感是很糟糕的,我们并不希望下落的过程耽误我们太多的时间,同时长时间的下落过程会让角色看起来没有质感。对于经典游戏马里奥,它对跳跃的处理就很巧妙。我们截取它从起跳到落地的过程,一共大约28帧张帧图片。我们发现,他在18帧的时候到达最高点,然后在后面的10帧完成下落。这样的跳跃.
2022-05-16 14:55:37 3622 1
原创 Unity:利用单例模式与枚举管理你的音效(AudioManager)
对于unity音效的处理,我们可以使用单例模式与枚举让代码量变得整洁,同时减少资源的配置。优化你的代码。我们不难想到对于某个音效,比如跳跃,打击,触发这种效果音效,在特定的情境只需要单次播放的音效,我们可以使用这种方式来简单且清晰的去操作音效的播放。代码如下:using System.Collections;using System.Collections.Generic;using UnityEngine;public class AudioManager : MonoBehavio
2022-05-15 14:30:48 918
原创 DFS及洛谷P1605迷宫题解
意识到自己很菜已经很久了,今天终于下定决心要把DFS跟BFS好好学一下。虽然已经决定走游戏开发的道路了,但是无论如何,算法都是不能落下的一课。关于BFS跟DFS的定义,网上已经有很多非常详细的解法了,这里也就不在啰嗦。下面看例题,是洛谷的P1605。上题目。首先题目是非常经典的迷宫例题,唯一的不同在于,要求每个位置都必须只走一遍。很容易想到用dfs搜索,如果达到终点,那么就把方案总和++。同时我们需要确认当前每一个位置的状态,如果当前位置已经被遍历,那么我们需要把当前位置做好标记,同时需..
2022-04-03 21:37:50 3921 1
原创 力扣21合并两个有序链表之双指针法(迭代法)以及一些小心得
题目描述如下:依据题意,很容易想到的办法就是在两个链表都不为空的时候判断,优先把小的数据丢进去。之后特判一下边界,如果某个链表为空,那我们直接把节点接在另一个链表尾端即可。详细AC代码如下;在三目运算符那一块,我感觉有点不清晰,于是我加了个括号,接着神奇的事情发生了。耗时减少了一半!仅仅因为在最后一个特判边界条件的三目运算符那里多加了一个括号。我在查阅了很多的资料之后还是无法得到很好的回答,但是借此记录一下这一神奇的事情,也希望有大佬能在评论区帮我解答。同时...
2022-03-29 17:36:49 627
原创 Unity官方案例噩梦射手开发总结<一> 角色的攻击功能实现
愉悦的寒假生活总是会猝不及防地迎来尾声,这也意味着我大一生活的进度条已经过半了。幸运的是,在我某位优秀的学长的带领下,我完整地开发出来了unity的官方案例噩梦射手并基本实现所有功能,也是让我这个大一的苟蒻积攒了不少的新知识。话不多说进入正题。整个开发总结大体上我会分为这几几部分来写,分别是:游戏角色,怪物,gameManager,音效以及UI,可能会有所改动。本篇就来讲解一下游戏中主角的功能实现以及脚本书写。我们将下载好的资源包导入到unity工程中,由于案例太老,官方已经取消了该资源包的下载
2022-02-18 18:03:44 4684 2
原创 快速排序算法【C语言】&洛谷P1177 【模板】快速排序
快速排序算法作为最基础的算法之一,同时也是我们最常用的算法,c++也自带了sort之一快速排序的算法来方便我们的使用,今天我们就一起来学习一下简单快排的原理。洛谷的P1271就是这样的一个题目。事实就是,在昨晚之前,我从来没有去了解过快速排序的原理,在昨晚遇到这个题目,我查了一点资料,大概了解了一下快速排序的原理,它其实是对冒泡排序的一种优化,先从需要排序的数列中取定一个特殊值,将其余的数与其比较,小的放在一边,大的放在一边,这样我们就把需要排序的数组从一变成了二,再对这两个数组进行同样的操作,递归下去
2022-02-11 16:46:10 1862 1
原创 洛谷P2240 【深基12.例1】部分背包问题 题解
非常简单的一道贪心题,本苟蒻也是很轻易地一遍过(因为忽略了数据精度,所以第一遍0分,哈哈哈)没有什么多余的操作,开一个结构体数组,将单价最高的排在前面,然后遍历判断即可。下面是AC代码:#include<bits/stdc++.h> //万能头using namespace std;int main(void){ struct Q //定义一个结构体数组 { double sl; double zj; double dj;
2022-02-07 23:33:44 990
原创 算法入门之洛谷p1255数楼梯 题解
题目描述楼梯有N阶,上楼可以一步上一阶,也可以一步上二阶。编一个程序,计算共有多少种不同的走法。输入输出格式输入格式:一个数字,楼梯数。输出格式:走的方式几种。输入样例:4输出样例:5说明60% N<=50100% N<=5000写的时候被折磨了一个小时,最开始以为这题只考斐波那契数,想着一遍for直接过,结果只有30分,一查才发现1000号的斐波那契数就已经大的无法想象了。于是想到高精加法,写起来也不会很麻烦,相比较一般的高精度加法,我们在这里需要.
2022-02-05 17:11:59 7526 2
原创 我用unity开发的第一款游戏demo心得
本人目前大一,双非一本,谨以此博客,记录日后的unity学习过程与算法训练。希望能同大家一起进步!也希望三年后回过头来能看到一个优秀而拼搏的自己!话不多说,上我的第一个demo(虽然是跟着视频做的)就是一个简陋版的贪吃蛇啦!首先是添加最基础的scene,我们添加plane,player,再添加几个cube然后通过改变他们的参数来控制它们的大小及形状。需要注意的是,为了让我们的每一个游戏物体都看起来生动,我们需要为他们添加材质。在Project操作框下面的Assets里面新增一个文件夹Mretr.
2021-12-30 23:22:37 5034 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人