<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[麦当劳比肯德基好吃]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Weirdo_ran</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Weirdo_ran]]></copyright><item><title><![CDATA[Games101]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/128794841</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/128794841</guid><author>Weirdo_ran</author><pubDate>Sun, 29 Jan 2023 22:46:00 +0800</pubDate><description><![CDATA[这部分后续还会讲述关于OpenGL和Shader相关的知识。光栅化：把三维空间的几何形体显示在屏幕上实时：每秒出现30幅画面，即每秒30帧（30fps）。如果不满足，则不称之为实时，称之为离线。：几何相关的一些知识包括：曲线曲面简单曲面——通过细分获得复杂曲面形状发生变化时，面如何变化，如何保持原有的拓扑结构会拓展一些相关知识，如路线追踪、表面建模、光线传播方法Trade Off：慢，但是效果好又快又好：实时光线追踪for example：物理模拟，如一块布随风摆动。]]></description><category></category></item><item><title><![CDATA[Xlua热更新基础教学]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122742883</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122742883</guid><author>Weirdo_ran</author><pubDate>Sat, 29 Jan 2022 15:11:39 +0800</pubDate><description><![CDATA[热更新分类

第一种方案：

1.项目开发中，可以将部分逻辑提取到一个单独的代码工程中，打包为DLL

2.将DLL打包为AssetBundle

3.Unity程序动态加载AssetBundle中的DLL文件，使用Reflection机制来调用代码



第二种方案：

lua插件。在Unity环境内嵌一个lua虚拟机，经常变动的和对执行效率没要求的逻辑用Lua实现，游戏启动时加载服务器上最新的lua字节码来执行游戏。



========================================]]></description><category></category></item><item><title><![CDATA[Unity项目优化]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122734545</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122734545</guid><author>Weirdo_ran</author><pubDate>Fri, 28 Jan 2022 22:19:50 +0800</pubDate><description><![CDATA[特殊文件链接

Unity3D研究院之手游开发中所有特殊的文件夹 | 雨松MOMO程序研究院







CPU和GPU的分工链接

Render - 浅谈 CPU 与 GPU 如何分工？ - 知乎





脚本优化链接

MipMap与LOD是何物？_penchaoo-优快云博客_mipmaplod偏移怎么调





知识补充：HZ：赫兹，刷新的频率。

    比如显卡的赫兹是144，而显示器的帧率是60，那么帧率就会更不上显卡。每两帧渲染cpu的画面在...]]></description><category></category></item><item><title><![CDATA[Unity通信之Socket架构的业务层使用方法]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122729531</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122729531</guid><author>Weirdo_ran</author><pubDate>Fri, 28 Jan 2022 13:26:35 +0800</pubDate><description><![CDATA[效果：两个客户端，一个称为客户端A，一个称为客户端B。

一个服务器。

一组协议。

客户端A发送，服务器接受到，并且转发给所有客户端。

客户端A和客户端B接收到服务器的消息转发，并且读取出来，显示到客户端A和客户端B。









1.网络层定义好DTO以及协议。







2. 客户端的chatcontroller可以去拿服务端的DTO以及调api发送DTO给服务端。





3.服务端的controller要接受DTO并且转发。





4.在客户端和服务端的c...]]></description><category></category></item><item><title><![CDATA[Shader彩虹材质(●‘◡‘●)]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122725806</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122725806</guid><author>Weirdo_ran</author><pubDate>Fri, 28 Jan 2022 00:44:50 +0800</pubDate><description><![CDATA[Shader "RR/Shader1"
{
	Properties
	{
		//属性
		_Color("Color Tint",Color) = (1.0,1.0,1.0,1.0)
	}

		SubShader
	{
		//设置渲染状态和标签


		Pass
		{
		//开始CG代码
		CGPROGRAM
		//代码的编译指定
		#pragma vertex vert22
		#pragma fragment frag22

		//与我们属性里定义的color一致
		fixed4 .]]></description><category></category></item><item><title><![CDATA[渲染管线【转载】]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122722303</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122722303</guid><author>Weirdo_ran</author><pubDate>Thu, 27 Jan 2022 18:54:22 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[Unity联机人物加入游戏、同屏移动、与攻击]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122501473</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122501473</guid><author>Weirdo_ran</author><pubDate>Fri, 14 Jan 2022 20:47:24 +0800</pubDate><description><![CDATA[1.加入游戏

BattleFieldReuqest里面JoinRequest：把告诉服务器我要加入了，发送的数据里面key是type，值是join。

然后BattleFieldHandler里面对code判断，如果code是join，就返回player的Index给客户端，并且推送Event给所有客户端。

客户端在解析数据，拿到plauerIndex，并且在对应点实例化出来这个玩家。并且将index赋值给其PlayerMove脚本，并且将isMe设置为true。添加到客户端的PlayerList里面。]]></description><category></category></item><item><title><![CDATA[Unity单机人物移动]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122484100</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122484100</guid><author>Weirdo_ran</author><pubDate>Thu, 13 Jan 2022 22:29:17 +0800</pubDate><description><![CDATA[1.创建地图

2.地图设置成static，然后用Navigation去bake一下。

3.创建人物

4.在人物身上添加Nav Mesh Agent



这上面的参数可以改，比如Angular speed就是人物的转向的速度。我们到时候控制人物身上的这玩意就可以直接去实现移动人物的效果。



5.创建一个PlayerMovo脚本，直接控制nav agent移动就ok了



上面 还调用了动画状态机。这里面动画状态机的设置是一个int类型的speed，然后如果speed&gt;0.2就播放run，否]]></description><category></category></item><item><title><![CDATA[Unity同屏移动-客户端与服务端]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122472062</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122472062</guid><author>Weirdo_ran</author><pubDate>Thu, 13 Jan 2022 14:09:29 +0800</pubDate><description><![CDATA[1.Show Request.cs作用是发送给客户端自己的id







2.PlayerMagener.cs来管理所有的Player

其中Add方法，可以将玩家添加到玩家字典里面，以及有显示自己的请求。

这边的显示自己的功能由PlayerController.cs里面刚开始就直接加进去。









3.服务端处理Show的请求，ShowHandler.cs：拿到id，并且Event推送给其他的所有客户端。







4.客户端处理Show的Event，PhontonEngine....]]></description><category></category></item><item><title><![CDATA[Unity客户端与服务端交互之Event]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122443787</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122443787</guid><author>Weirdo_ran</author><pubDate>Tue, 11 Jan 2022 23:16:18 +0800</pubDate><description><![CDATA[功能：

客户端1，2都连接了服务器；

客户端1给服务器发了消息“asdasd”

服务器做Event事件发给所有客户端

客户端1，2全都收到了消息“asdasd”







注意点：MyGameServer里面，一个peer就是一个连接，所以我们每次有一个客户端连接，就要把其peer添加到一个list中。服务器然后在发送Event的时候，遍历List，群发就ok。



———————————————————————————————————————————

服务端

ChatHandler.c.]]></description><category></category></item><item><title><![CDATA[Unity注册登录Demo的实现-03（全部完整代码）（客户端、服务端、数据库）]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122413570</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122413570</guid><author>Weirdo_ran</author><pubDate>Tue, 11 Jan 2022 00:19:27 +0800</pubDate><description><![CDATA[流程







客户端







服务端















---------------------------------------------------------------------------------------------------------------------------------



客户端



PhotonEngine.cs：差不多算是主类吧，将其构造成单例，到时候方便调用

里面有处理服务端返回的响应的方法，还有接受客户端发来的事件的方法等等]]></description><category></category></item><item><title><![CDATA[Unity注册Demo的实现-02]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122412507</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122412507</guid><author>Weirdo_ran</author><pubDate>Mon, 10 Jan 2022 16:19:06 +0800</pubDate><description><![CDATA[1.在解决方案下创建一个Common的类库（Framework），差不多就是客户端与服务端的协议，因为到时候互相发消息，那些code的值1,2,3,4啥的，很乱，所以我们用一个common，来搞协议。





2.在服务端那边添加引用，直接引用项目Common







3.将Common中的框架设置成3.5。

并且生成路径设置成Unity客户端里面的Plugins目录下（这样common就添加到客户端了）。











4.把common改成枚举

Class1.cs：


name..]]></description><category></category></item><item><title><![CDATA[Unity注册Demo的实现-01]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122411695</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122411695</guid><author>Weirdo_ran</author><pubDate>Mon, 10 Jan 2022 15:50:54 +0800</pubDate><description><![CDATA[1.将Manager，Mapping，Model，hibernate.cfg.xml，NHibernateHelper.cs这五个文件复制到我们下面所指的服务器中







2.更改命名空间，按住Ctrl+F查找，然后全部替换





3.添加NHibernate和MySql的dll引用

4.做个测试看看成功没





重新生成，并且重启打开服务器log



成功( •̀ ω •́ )y


...]]></description><category></category></item><item><title><![CDATA[NHibernate管理会话工厂，更简单的数据库操作API编写]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122411001</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122411001</guid><author>Weirdo_ran</author><pubDate>Mon, 10 Jan 2022 15:13:18 +0800</pubDate><description><![CDATA[这次就是完整的全部项目代码了

大家收好

结构







hibernate.cfg.xml：用于配置连接数据库


&lt;?xml version="1.0" encoding="utf-8" ?&gt;
&lt;hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"&gt;
  &lt;session-factory&gt;
    &lt;property name="connection.provider"&gt;N.]]></description><category></category></item><item><title><![CDATA[NHibernate创建session操作，以及transaction事务的使用]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122407729</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122407729</guid><author>Weirdo_ran</author><pubDate>Mon, 10 Jan 2022 12:17:47 +0800</pubDate><description><![CDATA[根据我们之前的配置。用session

然后直接new就可以了，很方便。

Program.cs:


using NHibernate;
using NHibernate.Cfg;
using NHiberToMySQL.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NHiberToMy]]></description><category></category></item><item><title><![CDATA[NHibernate的配置]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122403691</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122403691</guid><author>Weirdo_ran</author><pubDate>Mon, 10 Jan 2022 11:49:13 +0800</pubDate><description><![CDATA[1.创建一个控制台应用

2.引入dll，这里可以右击引用，点击管理NuGet程序包，然后直接去搜索下载。

我们这里下载MySql.Data和NHibernate







3. 配置hibernate的config

可以去官网Your first NHibernate based application - NHibernate

找到一个Configure NHibernate

其中我们要更改的是我红色方框圈出来的地方，一个是数据库类型，一个是连接



在项目中添加一个hibernate..]]></description><category></category></item><item><title><![CDATA[.Net连接MySql，以及读取和写入操作]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122399839</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122399839</guid><author>Weirdo_ran</author><pubDate>Sun, 09 Jan 2022 22:32:42 +0800</pubDate><description><![CDATA[1.创建一个控制台应用

2.添加引用：MySql.Data.dll





3.随便打些api看看能不能.出来，如果可以的话，就是引用成功了





4.连接上数据库，并且测试一下读取和写入的操作。



最后附上完整代码：

Program.cs：


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MyS]]></description><category></category></item><item><title><![CDATA[PhotonServer-服务端给客户端的Event推送]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122396709</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122396709</guid><author>Weirdo_ran</author><pubDate>Sun, 09 Jan 2022 18:03:56 +0800</pubDate><description><![CDATA[1.服务端向客户端推送Event



完整代码：

ClientPeer.cs:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Photon.SocketServer;
using PhotonHostRuntimeInterfaces;

namespace RRGameServer
{
    clas]]></description><category></category></item><item><title><![CDATA[PhotonServer，客户端发送请求给服务端，服务端解析请求，发送回客户端响应，客户端再解析服务端发过来的响应。]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122395490</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122395490</guid><author>Weirdo_ran</author><pubDate>Sun, 09 Jan 2022 16:59:06 +0800</pubDate><description><![CDATA[1.（客户端发送给服务端）test中的构造参数并且发送





完整代码如下

test.cs


using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour {

	void Start () {
		
	}
	
	void Update () {
        if (Input.GetMouseButt.]]></description><category></category></item><item><title><![CDATA[PhotonServer-unity向服务端发送请求，并且服务端返回]]></title><link>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122394786</link><guid>https://blog.youkuaiyun.com/Weirdo_ran/article/details/122394786</guid><author>Weirdo_ran</author><pubDate>Sun, 09 Jan 2022 16:07:02 +0800</pubDate><description><![CDATA[1.打开unity，在其中创建一个gameobject，创建一个test脚本挂在上面，用于点击测试向服务端发消息的测试

test.cs：


using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class test : MonoBehaviour {

	void Start () {
		
	}
	
	void Update () {
        if]]></description><category></category></item></channel></rss>