<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Eugen009的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Eugen009</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Eugen009]]></copyright><item><title><![CDATA[Simplygon 使用笔记2]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/142665485</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/142665485</guid><author>Eugen009</author><pubDate>Mon, 30 Sep 2024 23:57:02 +0800</pubDate><description><![CDATA[主要讲解部分simplygon里的使用问题]]></description><category></category></item><item><title><![CDATA[在unity资源中发现无效引用]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/142580738</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/142580738</guid><author>Eugen009</author><pubDate>Fri, 27 Sep 2024 00:33:58 +0800</pubDate><description><![CDATA[主要讲如在脱离unity下验证资源引用的正确性]]></description><category></category></item><item><title><![CDATA[Untiy中给资源名改大小写]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/142230734</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/142230734</guid><author>Eugen009</author><pubDate>Fri, 13 Sep 2024 22:28:08 +0800</pubDate><description><![CDATA[改名的方法]]></description><category></category></item><item><title><![CDATA[静态地形网格减面]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/142187800</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/142187800</guid><author>Eugen009</author><pubDate>Thu, 12 Sep 2024 23:23:10 +0800</pubDate><description><![CDATA[静态地形网格的减面]]></description><category></category></item><item><title><![CDATA[Simplyon的使用笔记1]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/135753074</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/135753074</guid><author>Eugen009</author><pubDate>Mon, 22 Jan 2024 18:28:35 +0800</pubDate><description><![CDATA[simplygon的使用问题]]></description><category></category></item><item><title><![CDATA[Unity资源到底要怎样修改]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/130086525</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/130086525</guid><author>Eugen009</author><pubDate>Wed, 12 Apr 2023 09:31:54 +0800</pubDate><description><![CDATA[unity资源修改与保存的小整理]]></description><category></category></item><item><title><![CDATA[unity标准材质，emission的设置]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/125968415</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/125968415</guid><author>Eugen009</author><pubDate>Mon, 25 Jul 2022 09:40:31 +0800</pubDate><description><![CDATA[emission的脚本设置]]></description><category></category></item><item><title><![CDATA[C# 使用笔记]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/123884868</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/123884868</guid><author>Eugen009</author><pubDate>Thu, 31 Mar 2022 22:37:24 +0800</pubDate><description><![CDATA[各种"?"用法

a ？b：c : 判断a为真返回b,否则c
t? ：声明可空类型t
a??b: a 为真返a, 否则b
a?.c : a 为真，返回其属性c, 否则是空的可空类型
a?[i] : a 为真，返回索引i的值，否则是空的可空类型

int i = 23 &gt; 12 ? 23 : 12;
Debug.Log(string.Format("23 &gt; 12 ? 23 : 12: {0}", i));
TestInfo info = new TestInfo();
int? ii = inf]]></description><category></category></item><item><title><![CDATA[Ai相关总结]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/123806532</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/123806532</guid><author>Eugen009</author><pubDate>Mon, 28 Mar 2022 22:01:58 +0800</pubDate><description><![CDATA[本文为个人多年项目的理解，如有不对，请指出

概述

Ai一般与玩法相关，在玩家的感管上就是，非玩家角色表现得是否“足够的聪明”及“良好的交互”。
Ai一般分为“规则型”与“学习型”。“规则型”指AI是由固定的行为，并通过不同组合产生出所谓的AI。“学习型”当然是指现在流行的“机械学习”，产生出所谓的AI。
“规则型”是固定的，比较适合在强调“数值型”的游戏，而“学习型”更适合于“竞技对抗型”的游戏。
当然，他们的界限不是绝对的，“规则型”是“学习型”的基础，而“学习型”又产生出新的“规则型”结果。

常.]]></description><category></category></item><item><title><![CDATA[关于帧同步系统（一）]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/123778269</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/123778269</guid><author>Eugen009</author><pubDate>Sun, 27 Mar 2022 20:05:54 +0800</pubDate><description><![CDATA[本概述都是基于自己经历的项目见解，不一定是正确的。这是一个系列总结，以后会补充更多

帧同步的概述


帧同步，其实是基本帧更新的同步方式，但并不是要求每一帧都同步数据，而要求多端，他们执行在指定的帧号上，而且每一帧，多端运行结果都是一致的


一般而言，所谓的“帧”不是真实时间的帧（虽然也会受真实时间影响），而叫做作“网络帧”，由“服务器”决定能不能执行下一帧，并广播到多端上驱动更新“帧”。

这个是最简单的方式，实质上项目为了效果好，不会这么老实等待驱动事件



“网络帧”更新一般很慢，主要执行“逻.]]></description><category></category></item><item><title><![CDATA[【作业】文本左右对齐]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/123765629</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/123765629</guid><author>Eugen009</author><pubDate>Sat, 26 Mar 2022 22:46:09 +0800</pubDate><description><![CDATA[题目

题目来自leetcode


有N个单词的句子，要求每行限制在M个字符中显示，最左单词要向左对齐，最右单词向右对齐，空格要求平均分，不能时最左边的显示最多的空格

结论
输入：
“This”, “is”, “a”, “max”,
“word”, “line”, “test”, “,”,
“which”, “is”, “a”, “test”,
“of”,“leetcode”

代码
#pragma

#include &lt;vector&gt;
#include &lt;iostream&gt;
#]]></description><category></category></item><item><title><![CDATA[部分优化总结]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/123403045</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/123403045</guid><author>Eugen009</author><pubDate>Thu, 10 Mar 2022 15:36:27 +0800</pubDate><description><![CDATA[想到了会再补充

运行效率
通用优化

部分很复杂的逻辑，较通用的是，使用并行化处理，开多线程
也可以通过分帧处理，一段处理，分开到多帧里处理
算法或结构的改进

脚本优化

脚本往更快的语言搬相同的逻辑


一般语言速度对比 C++ &gt; C# &gt; lua &gt; python


脚本减少对低层接口的调用，或脚本一次性收集后，再统一调用。

低层接口一般是为了调用一些与引擎相关的功能，引擎一般是使用更快的语言编写，故脚本与引擎语言存在box与unbox流程，即两种语言间的数据处理
频繁的数.]]></description><category></category></item><item><title><![CDATA[成员函数相关问题]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/123382431</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/123382431</guid><author>Eugen009</author><pubDate>Wed, 09 Mar 2022 17:15:57 +0800</pubDate><description><![CDATA[关于类成员函数

类的大小本身不会包含类成员函数的指针地址,

class TestASize {
	int id = 444;
};

class TestBSize {
public:
	int id = 232;
	void test1() {}
	void test2() {}

};

int main()
{
	TestBSize b;
	TestASize a;
	std::cout &lt;&lt; "a size: " &lt;&lt; sizeof(a) &lt;&lt; std::en]]></description><category></category></item><item><title><![CDATA[重写allocate]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/123355214</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/123355214</guid><author>Eugen009</author><pubDate>Tue, 08 Mar 2022 15:42:40 +0800</pubDate><description><![CDATA[allocate重写简要

一般STL库里的容器都会使用allocator来分配内存
实现自己的allocator可以达到让容器使用自身的内存管理
实现allocator不必重载allocator类，随便开一个新类即可
allocator有五个必须有的函数

allocate： 用于开辟内存，功能类似operator new
deallocate: 回收内存，功能类似operator delete
construct: 调用构造函数
destroy: 调用释构函数
重绑用的拷贝函数



template ]]></description><category></category></item><item><title><![CDATA[关于C++ 11的右值]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/123213676</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/123213676</guid><author>Eugen009</author><pubDate>Tue, 01 Mar 2022 19:30:04 +0800</pubDate><description><![CDATA[右值的概念

右值，较简单地认为，是指没有变量名的数据（这说法当然不是很准确）
C++11 新增处理“右值”的类型，允许指向右值，并用“Ty&amp;&amp;”声明
这里不计划对右值概念展开说，以下主要谈谈“右值”的使用

右值的使用

右值应用的一般是为了解决一些临时数据拷贝问题
做法一般也是直接拷贝右值的内存地址，不做深度拷贝，并放弃右值对该内存引用
移动拷贝：其实就是使用以上方法构造一个新对象


例如，我们需要从结构里拷贝有字符串与数组

class MoveConClass {
public:
]]></description><category></category></item><item><title><![CDATA[【作业】八皇后问题]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/122923062</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/122923062</guid><author>Eugen009</author><pubDate>Mon, 14 Feb 2022 14:04:03 +0800</pubDate><description><![CDATA[题目


在nxn的格子里，放入N个皇后棋，并使他们相互之间无法攻击


皇后可攻击的方向都为“米”字型， 八方向直线攻击，如图



其中这是一种解决方法：



4.请输入n的数目，并返回所有可能的结果，例如如下：
input: 4
find res count: 2
[0,1,0,0
,0,0,0,1
,1,0,0,0
,0,0,1,0]
[0,0,1,0
,1,0,0,0
,0,0,0,1
,0,1,0,0]
代码

由于是NxN个格子，每一行必定有一人棋子，这里我每行都找一个可放位置，然后再递归遍]]></description><category></category></item><item><title><![CDATA[【作业】串联所有单词的子串]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/122619927</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/122619927</guid><author>Eugen009</author><pubDate>Fri, 21 Jan 2022 13:59:19 +0800</pubDate><description><![CDATA[题目
给一个字符串s 和一些长度相同的单词words, 在s 里找到所有words按任意顺序组成的子字符串，并返回这些子字符串的起始位置

例如： s = “barfooothefoobarman”  words = [“foo”, “bar”]
返回 [0, 10]

结论：
s: “barfooothefoobarman”
words: [“foo”, “bar”]
res: [0, 10]
s: “wordgoodgoodgoodbestword”
words: [“word”, “good”, “b]]></description><category></category></item><item><title><![CDATA[C++ 使用备忘]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/121646769</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/121646769</guid><author>Eugen009</author><pubDate>Wed, 19 Jan 2022 17:00:05 +0800</pubDate><description><![CDATA[C++ 11

decltype 获取变量的类型

C++ 17

optional 获得选择值

#include &lt;optional&gt;
std::optional&lt;int&gt; test_optional(int i) {
    if (i &gt; 120)
        return std::optional&lt;int&gt;(200);
    return std::nullopt;
}

std::cout &lt;&lt; "test_optional()" &]]></description><category></category></item><item><title><![CDATA[【作业】数独]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/122505237</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/122505237</guid><author>Eugen009</author><pubDate>Tue, 18 Jan 2022 14:10:32 +0800</pubDate><description><![CDATA[#include 
#include 
#include 
#include 
#include &lt;time.h&gt;
#include &lt;assert.h&gt;
#include 
class Sudoku {
public:
static const int ONE_LINE_COUNT = 3;
static const int LINE_TOTAL_COUNT = ONE_LINE_COUNT * ONE_LINE_COUNT;
static const int ONE_MAT_CO]]></description><category></category></item><item><title><![CDATA[K个一组翻转链表]]></title><link>https://blog.youkuaiyun.com/Eugen009/article/details/122484617</link><guid>https://blog.youkuaiyun.com/Eugen009/article/details/122484617</guid><author>Eugen009</author><pubDate>Thu, 13 Jan 2022 22:53:20 +0800</pubDate><description><![CDATA[题目
一个链表，每个K个节点一组翻转，返回翻转后的链表
例如
链表为{1， 2， 3， 4， 5 }
K = 2
翻转后 {2， 1， 4， 3， 5}
结果
list: 1, 4, 7, 10, 56, 23, 23, 2, 87
K = 3
reverse:7, 4, 1, 23, 56, 10, 87, 2, 23
list: 7, 4, 1, 23, 56, 10, 87, 2, 23
K = 2
reverse: 4, 7, 23, 1, 10, 56, 2, 87, 23
代码
#include]]></description><category></category></item></channel></rss>