<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[MoonWinding的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/MoonWinding</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; MoonWinding]]></copyright><item><title><![CDATA[动画播放器（自开发版）]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/137936228</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/137936228</guid><author>MoonWinding</author><pubDate>Thu, 18 Apr 2024 20:39:31 +0800</pubDate><description><![CDATA[图中的MainDirector 为播放器主驱动脚本，AnimatroMove 为移动的数据存储脚本。播放器Editor.cs。移动脚本数据储存逻辑。]]></description><category></category></item><item><title><![CDATA[【MVC界面框架搭建 三】]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/130282857</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/130282857</guid><author>MoonWinding</author><pubDate>Fri, 21 Apr 2023 10:53:07 +0800</pubDate><description><![CDATA[上面界面的代码除了一个登录界面的事件实现，其他代码逻辑都是自动生成，界面层的点击或者其他事件通过CtrlEvent 传递。前二章主要分享的框架层代码。登录界面的ctrl 和面板。]]></description><category></category></item><item><title><![CDATA[【MVC界面框架搭建 二】]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/130282325</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/130282325</guid><author>MoonWinding</author><pubDate>Fri, 21 Apr 2023 10:34:39 +0800</pubDate><description><![CDATA[打开界面策略：
PolicyStack 栈式打开策略 同一时间只允许一个打开操作
PolicySingle 打开单独界面 有界面的时候，不会再打开其他界面 比例系统级别的提示弹窗 ,
加载界面等
PolicyMul     /// 同时可以打开多个界面
当然可以根据项目需求自由扩展自己打开的扩展需求界面管理类 UIManager
下面是View 层代码：
View 层代码比较简单 ，主要是实现显示的功能和自动生成Ctrl 和View 层代码的逻辑
ViewReference 界面的mono 物件挂载者
界面]]></description><category></category></item><item><title><![CDATA[【MVC界面框架搭建 一】]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/130277530</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/130277530</guid><author>MoonWinding</author><pubDate>Thu, 20 Apr 2023 22:55:44 +0800</pubDate><description><![CDATA[b.PolicySingle 打开单独界面 有界面的时候，不会再打开其他界面 比例系统级别的提示弹窗 ,加载界面等。支持界面的Prefab 的摧毁和恢复，Ctrl 层的动态数据保存，可以用类恢复界面。总界面可以加载子界面， 总界面，子界面，单元界面都可以再次载入单元界面。c. 同时可以打开多个界面 比如tips 重复弹出之类的。a. 栈式打开策略 同一时间只允许一个打开操作。单元界面： ItemCtrl。1.界面的Ctrl 层基类。总界面：PanelCtrl。子界面 ：SubCtrl。]]></description><category></category></item><item><title><![CDATA[UGUI 无限循环列表分享]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/123260676</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/123260676</guid><author>MoonWinding</author><pubDate>Thu, 03 Mar 2022 18:21:32 +0800</pubDate><description><![CDATA[设置原理，没有处于列表可视范围的元素将列表系统隐藏回收，用于可视范围的列表元素进行显示
1.可视范围的判断：
public static class RectTransformExtensions{
    public static bool Overlaps(this RectTransform a, RectTransform b){
        return a.WorldRect().Overlaps(b.WorldRect());
    }
    public static bool O]]></description><category></category></item><item><title><![CDATA[Unity MlAgent 使用介绍]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/121935861</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/121935861</guid><author>MoonWinding</author><pubDate>Tue, 14 Dec 2021 18:36:48 +0800</pubDate><description><![CDATA[分享github 工程：https://github.com/IsaWinding/mlagent02.git
1.本文介绍要一个战斗中，英雄Ai行为操作用MlAgent来训练操作

图中为英雄训练的次数，生成的不同.onnx 文件。

训练次数较少的时候，训练的英雄会随机在周围的墙边移动
随着训练次数变多，训练的英雄会直接奔向敌方小兵的位置，进行攻击操作。
英雄行为脚本：
using System.Collections;
using System.Collections.Generic;
using U]]></description><category></category></item><item><title><![CDATA[unity Addressable系统及其Xlua脚本热更新全过程详细解析（三）]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/121762744</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/121762744</guid><author>MoonWinding</author><pubDate>Tue, 07 Dec 2021 10:34:38 +0800</pubDate><description><![CDATA[最后添加一下Addressable资源服务器ip 地址的动态修改，以及xluahotFix 的使用：
分享一下个人Demo工程:https://github.com/IsaWinding/AddressableXluaFramework.git
希望大家多多点赞，谢谢
有些包可能涉及到母包出很多渠道包，有些渠道可能会布置和维护自己的资源服务器，那么就必修动态修改自己的资源服务器地址了
建议新的ip 地址通过其他信息后台获取后设置更改

动态修改Addressable资源服务器地址：

	private bo]]></description><category></category></item><item><title><![CDATA[unity Addressable系统及其Xlua脚本热更新全过程详细解析（二）]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/121701209</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/121701209</guid><author>MoonWinding</author><pubDate>Fri, 03 Dec 2021 16:19:43 +0800</pubDate><description><![CDATA[分享Addressable 资源加载：
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class AssetManager
{
    private static AssetManager instance;
    public static AssetManager Instance { get { if (instance == null) instance = new A]]></description><category></category></item><item><title><![CDATA[unity Addressable系统及其Xlua脚本热更新全过程详细解析（-）]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/121699388</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/121699388</guid><author>MoonWinding</author><pubDate>Fri, 03 Dec 2021 16:07:04 +0800</pubDate><description><![CDATA[1.本来关于Addressable 的文章已经写了2篇了，但对这个addressable系统有些地方还是不清楚怎么用，这次就用来记录一下结合xlua 实现资源和代码的全更新方案。
列取一下一开始遇到的问题：
1.xlua 开发的时候我们用的都是.lua 文件，这个是unity 无法识别的文件这个要怎么解决？
2.xlua 读取文件的bytes 都是同步读取方式，最新的addressable 很多的同步读取方式都已经弃用。怎么解决这个同步读取问题？
带着这些问题，下面介绍我提供的解决方案。
分享一下个人Dem]]></description><category></category></item><item><title><![CDATA[unity Mirror使用心得二（服务器端的怪物创建，及其怪物AI的行为）]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/121531941</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/121531941</guid><author>MoonWinding</author><pubDate>Thu, 25 Nov 2021 10:45:14 +0800</pubDate><description><![CDATA[1.怪物必须由服务器创建：
创建代码：
using Mirror;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MonsterCreater : NetworkBehaviour
{
    public Vector3 Pos;
    public GameObject projectilePrefab;
    private NetworkIdentity i]]></description><category></category></item><item><title><![CDATA[unity Mirror使用心得一（玩家角色创建，控制，及其攻击其他玩家的血量同步设置）]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/121531081</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/121531081</guid><author>MoonWinding</author><pubDate>Thu, 25 Nov 2021 10:16:52 +0800</pubDate><description><![CDATA[先分享下个人mirrordemo 的github :
https://github.com/IsaWinding/MirrorDemo.git
mirror 的官方下载地址：
https://assetstore.unity.com/packages/tools/network/mirror-129321
1.添加NetworkManager

2.添加NetworkMangerHud

3.制作玩家角色预制体并添加mirror 相关组件

networkTransform 和networkAnimator]]></description><category></category></item><item><title><![CDATA[unity Addressable 使用心得]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/120198036</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/120198036</guid><author>MoonWinding</author><pubDate>Thu, 09 Sep 2021 11:42:06 +0800</pubDate><description><![CDATA[Addreseable 组的设置
1.设置文件分组
 [MenuItem("AddressableEditor/SetAllDirectorToAddress", priority = 2)]
    public static void SetAllDirectorToAddress()
    {
        var arr = Selection.GetFiltered(typeof(DefaultAsset), SelectionMode.Assets);
        string fold]]></description><category></category></item><item><title><![CDATA[时间轴上的定时行为]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/119785771</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/119785771</guid><author>MoonWinding</author><pubDate>Wed, 18 Aug 2021 17:49:58 +0800</pubDate><description><![CDATA[public class TimeActioner
{
    private float loadTime;
    private float delayTime;
    private float repeatTime;
    private int totalRepeatCount = 1;//如果为-1 就永不停止
    private int curRepeatCount = 0;
    public int TimeAcId;
    private System.Action&lt;]]></description><category></category></item><item><title><![CDATA[仿Dota2战斗属性系统]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/119785508</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/119785508</guid><author>MoonWinding</author><pubDate>Wed, 18 Aug 2021 17:44:19 +0800</pubDate><description><![CDATA[1.属性的类型：
public enum AttributeType : byte
{
    Hp = 0,//血量
    Mp = 1,//魔量
    PhyAtk = 2,//物理攻击
    PhyDef = 3,//物理抗性(护甲)
    MagicDef = 4,//魔抗
    HpRecover = 5,//Hp 恢复
    MpRecover = 6,//Mp 恢复
    AtkSpeed = 7,//攻击速度
    AtkCd = 8,//攻击间隔
    AtkRange ]]></description><category></category></item><item><title><![CDATA[UGUI游戏摇杆]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/119677343</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/119677343</guid><author>MoonWinding</author><pubDate>Fri, 13 Aug 2021 15:47:17 +0800</pubDate><description><![CDATA[using UnityEngine;
using UnityEngine.EventSystems;

/// &lt;summary&gt;
/// UGUI游戏摇杆
/// &lt;/summary&gt;
public class Joystick : MonoBehaviour, IPointerDownHandler, IPointerUpHandler, IDragHandler
{
    public static Joystick Instance = null;
    public T]]></description><category></category></item><item><title><![CDATA[PhotoServer使用心得（FPS战斗的创建及其流程运行，包括客户端和服务器代码共享）]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/119041301</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/119041301</guid><author>MoonWinding</author><pubDate>Fri, 23 Jul 2021 18:04:56 +0800</pubDate><description><![CDATA[服务器篇
1.服务器windows10 64位启动路径：
C:\PrivateSpace\PhotonServer\Photon-OnPremise-Server-SDK_v4-0-29-11263\deploy\bin_Win64\PhotonControl.exe
2.服务器Ip配置，在统计目录的PhotonServer.config 中添加

&lt;!-- 0.0.0.0 opens listeners on all available IPs. Machines with multiple IPs]]></description><category></category></item><item><title><![CDATA[关于unity加密相关的分享]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/118607932</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/118607932</guid><author>MoonWinding</author><pubDate>Fri, 09 Jul 2021 15:30:44 +0800</pubDate><description><![CDATA[关于unity global-metadata.dat 机密问题。还有其他的加密破解问题可以看下面链接，对自己的项目进行安全构建。
https://www.gameres.com/844907.html

]]></description><category></category></item><item><title><![CDATA[unity 事件系统]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/114183809</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/114183809</guid><author>MoonWinding</author><pubDate>Sat, 27 Feb 2021 18:12:55 +0800</pubDate><description><![CDATA[事件的基类：
using System;
using System.Collections.Generic;

public class EventSender&lt;TKey,TValue&gt; 
{

	private Dictionary&lt;TKey, Action&lt;TValue&gt;&gt; dic = new Dictionary&lt;TKey, Action&lt;TValue&gt;&gt;();

	public void AddListener(TKey pKey,Acti]]></description><category></category></item><item><title><![CDATA[unity UIFrameWork]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/114182007</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/114182007</guid><author>MoonWinding</author><pubDate>Sat, 27 Feb 2021 17:37:05 +0800</pubDate><description><![CDATA[MVC 设计架构：
C基类的创建：
using UnityEngine;

public class UICtrlBase
{
	protected virtual string Key { get { return "UICtrlBase"; } }//C 的key 数值
	protected virtual string Path { get { return ""; } }//加载的资源路径

	/// &lt;summary&gt; 打开流程
	/// OnInit --&gt; OnPost  -]]></description><category></category></item><item><title><![CDATA[Unity Addressable资源加载]]></title><link>https://blog.youkuaiyun.com/MoonWinding/article/details/114181059</link><guid>https://blog.youkuaiyun.com/MoonWinding/article/details/114181059</guid><author>MoonWinding</author><pubDate>Sat, 27 Feb 2021 17:11:07 +0800</pubDate><description><![CDATA[下载安装设置方面的不讲了直接上使用的加载卸载代码
using UnityEngine;
using UnityEngine.AddressableAssets;
using UnityEngine.ResourceManagement;

public class ResLoader 
{
    private string path;
    private UnityEngine.Object asset_;
    private GameObject go_;
    private System]]></description><category></category></item></channel></rss>