<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[yiwei151的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/yiwei151</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; yiwei151]]></copyright><item><title><![CDATA[Unity Shader 实现抖音摆钟摆动显示不同图片的效果]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/116929141</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/116929141</guid><author>yiwei151</author><pubDate>Mon, 17 May 2021 13:57:23 +0800</pubDate><description><![CDATA[这个效果我也不太好描述，不知道叫什么，看效果图吧：




]]></description><category></category></item><item><title><![CDATA[Unity Shader  实现抖音三分屏效果]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/115566493</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/115566493</guid><author>yiwei151</author><pubDate>Sat, 10 Apr 2021 11:11:06 +0800</pubDate><description><![CDATA[老规矩，先上效果图：

相信大家也经常刷抖音，这种三分屏的效果也经常见到，不过抖音上是动态的视频，我们这里就暂时拿一张图片来实现这种效果吧。
实现思路：
1、将UV的V值从（0-1）的区间变换到（0-3）的区间
2、对每个区间取小数部分（例如：2.2取小数为0.2,0.6取小数为0.6）
3、最后在吧每个（0-1）的区间变换到（0.3-0.6：注这里的0.3-0.6是我随便取的值，大家可以根据需求改变）的区间
具体实现：
1、首先变换区间，这个比较简单，从0-1变换到0-3，只需要吧原先的值乘3即可，

（]]></description><category></category></item><item><title><![CDATA[unity shader 菲涅尔效果]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/115253102</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/115253102</guid><author>yiwei151</author><pubDate>Fri, 26 Mar 2021 19:10:34 +0800</pubDate><description><![CDATA[老样子，还是先上效果图：

菲涅尔效果的原理大家可以自己去百度看看，网上有很多，这里就不多说了，我们直接看如何实现这个效果
实现思路：
1、求得视角方向，法线方向（世界空间下）
2、根据菲涅尔效果的公式：FresnelValue=pow(1-max(0,dot(N,V)),_FresnelPow)    -&gt;N：模型顶点法线    V：视角方向      _FresnelPow：菲涅尔效         果的强度
3、将求得的值与颜色相乘，即可
具体实现：
1、首先求世界空间下法线方向，这个比较简单，]]></description><category></category></item><item><title><![CDATA[Unity切换为Android平台材质丢失解决方法]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/115128574</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/115128574</guid><author>yiwei151</author><pubDate>Tue, 23 Mar 2021 16:18:27 +0800</pubDate><description><![CDATA[项目切换为Android平台后，在hub中打开对应项目的高级项目配置

添加配置
-force-gles30

重启unity工程，即可切换为OpenGL ES 3.0
注：该配置只对单个项目生效，需要的项目需要单独配置

]]></description><category></category></item><item><title><![CDATA[unity shader 案例——地毯交互效果]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/109257819</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/109257819</guid><author>yiwei151</author><pubDate>Sat, 24 Oct 2020 13:40:05 +0800</pubDate><description><![CDATA[首先看一下我们要实现的效果吧：

我第一次看到这个效果时，感觉好厉害，一时间也没什么想法可以去实现，后面仔细去想了下，原来实现的原理还挺简单的（/捂脸）
原理：可以吧球看成一个四维向量的点（CenterPos），然后把CenterPos当成是sin函数的最高点，延伸部分就用sin函数求出顶点的偏移值，就可以出现上述效果啦。

1、设定一个地毯隆起的最大半径（R），也就是A点到CenterPos的长度，A点到CenterPos中间其实是有很多顶点的
2、将每个顶点到CenterPos的距离转化为0-90度，这]]></description><category></category></item><item><title><![CDATA[Unity shader 案例  --- 翻书效果]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/108808665</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/108808665</guid><author>yiwei151</author><pubDate>Sat, 26 Sep 2020 10:34:11 +0800</pubDate><description><![CDATA[效果图：



最近开始学习学习shader，不然感觉自己要堕落了(捂脸)，，，

先说下实现的思想吧：

1、使用旋转矩阵旋转顶点

2、使用sin函数，对顶点进行优化，简单说就是看起来更舒服

3、使用两个pass，对plane的两面都进行渲染（毕竟一页纸是有两面的）





首先，是创建一个旋转矩阵（我这边创建的是绕Z轴的，具体项目具体创建是X还是Y还是Z轴矩阵），然后将角度转成弧度进行计算



然后，对顶点的Y轴进行sin计算，v.vertex -= float4(5, 0, 0, 0);这..]]></description><category></category></item><item><title><![CDATA[unity  无限列表功能（水平方向滑动，竖直方向原理类似）]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/105484647</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/105484647</guid><author>yiwei151</author><pubDate>Mon, 13 Apr 2020 11:36:32 +0800</pubDate><description><![CDATA[public static class RectTransformExtensions
    {
        public static bool Overlaps(this RectTransform a, RectTransform b)
        {
            return a.WorldRect().Overlaps(b.WorldRect());
      ...]]></description><category></category></item><item><title><![CDATA[unity编辑器工具—— 可排序列表]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/91539437</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/91539437</guid><author>yiwei151</author><pubDate>Wed, 12 Jun 2019 15:35:28 +0800</pubDate><description><![CDATA[效果图：

公司网络限制，后面上传





代码：



using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditorInternal;
[CustomEditor(typeof(NewBehaviourScript))]
public class testEditor : ...]]></description><category></category></item><item><title><![CDATA[unity 制作翻页按钮功能]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/88406539</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/88406539</guid><author>yiwei151</author><pubDate>Mon, 11 Mar 2019 19:54:50 +0800</pubDate><description><![CDATA[效果图：



UI子父级关系：



代码中也都有加入注释，有不懂可私信我。脚本中用到了对象池，我没有上传，可根据自己需求做相应变动。

脚本：PageBtnPanelC


using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Events;
using ...]]></description><category></category></item><item><title><![CDATA[c# 打开或保存对话框]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/87984795</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/87984795</guid><author>yiwei151</author><pubDate>Wed, 27 Feb 2019 18:55:36 +0800</pubDate><description><![CDATA[public static class Util{
    [DllImport("user32.dll")]
    private extern static void SwitchToThisWindow(IntPtr hWnd, bool fAltTab);
    [DllImport("user32.dll", EntryPoint = "FindWindow")]
    priv...]]></description><category></category></item><item><title><![CDATA[使用耳切法将多边形三角化]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/87946592</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/87946592</guid><author>yiwei151</author><pubDate>Tue, 26 Feb 2019 20:13:07 +0800</pubDate><description><![CDATA[效果图：



 

做法及原理可参考此链接：http://www.cnblogs.com/xignzou/p/3721494.html

 

代码：


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

namespace PolygonTool
{

    #region 耳切法对简单多边形进行三角形化
...]]></description><category></category></item><item><title><![CDATA[判断一个点是否在三角形内]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/87895000</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/87895000</guid><author>yiwei151</author><pubDate>Sat, 23 Feb 2019 18:01:51 +0800</pubDate><description><![CDATA[

 

 

算法1：通过面积法判断点P是否在三角形ABC内，如果P点在三角形内，则Sabc = Sapc + Sapb + Spbc（S代表面积）

Sabc = 向量AB ^ 向量AC / 2;//面积公式   ^ 代表叉乘    除以2 是得到三角形面积，否则得到四边形面积

unity中代码：


        Vector3 a = new Vector3(0, 0);
      ...]]></description><category></category></item><item><title><![CDATA[Python学习——基础]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/85722349</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/85722349</guid><author>yiwei151</author><pubDate>Thu, 03 Jan 2019 22:30:44 +0800</pubDate><description><![CDATA[1、numpy库

（1）、shape用法

group = array([[1.0,1.1],[1.0,1.0],[0,0],[0,0.1]])

print(group.shape)   结果：（4,2）

print(group.shape[0])  结果：4

print(group.shape[1])   结果：2

 

（2）、tile用法

地址：https://www.cnblo...]]></description><category></category></item><item><title><![CDATA[A*算法]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/83514964</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/83514964</guid><author>yiwei151</author><pubDate>Mon, 29 Oct 2018 23:13:04 +0800</pubDate><description><![CDATA[A*算法的解释网上也有很多，可以百度看看，这里做下笔记

先上A*算法的伪代码：



 Node.cs用来存储每一个Node的信息


using UnityEngine;
using System.Collections;

public class Node {
    public bool _canWalk;//是否可以行走
    public Vector3 _worldPos;//...]]></description><category></category></item><item><title><![CDATA[最短路径-Floyd算法]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/83514916</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/83514916</guid><author>yiwei151</author><pubDate>Mon, 29 Oct 2018 23:04:35 +0800</pubDate><description><![CDATA[Floyd算法应用了动态规划的思想，时间复杂度O(n3)，空间复杂度O(n2)，网上解释有很多，这里我只是做下笔记

 




using UnityEngine;
using System.Collections;

public class Floyd  {

    public const int infinity = 10000;    

    int[,] graph = new...]]></description><category></category></item><item><title><![CDATA[最短路径-Dijkstra算法]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/83514868</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/83514868</guid><author>yiwei151</author><pubDate>Mon, 29 Oct 2018 22:56:59 +0800</pubDate><description><![CDATA[Dijkstra算法应用了广度遍历，属于贪心算法



 


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

public class Djstl2 {

    public const int infinity = 10000;

    private int row = 6;
...]]></description><category></category></item><item><title><![CDATA[unity 给新创建的脚本添加描述]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/82216371</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/82216371</guid><author>yiwei151</author><pubDate>Thu, 30 Aug 2018 09:43:47 +0800</pubDate><description><![CDATA[
public class ChangeScriptTemplates : UnityEditor.AssetModificationProcessor
    {
        // 添加脚本注释模板
        public static string str =
            &quot;/*START==========================================...]]></description><category></category></item><item><title><![CDATA[unity 如何判断本身layer是否在选择的LayerMask层中]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/81540305</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/81540305</guid><author>yiwei151</author><pubDate>Thu, 09 Aug 2018 17:13:13 +0800</pubDate><description><![CDATA[如图,如果我们定义了一个LayerMask，命名为lm（可以选择多个不同的layer），我们要判断本身gameobject的layer是否在我们选择的layermask中，就需要按位与（&amp;amp;）了，


public class NewBehaviourScript:MonoBehaviour{
    public LayerMask lm;
    
    private void Up...]]></description><category></category></item><item><title><![CDATA[unity 获取Text组件里text内容的长度]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/81112656</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/81112656</guid><author>yiwei151</author><pubDate>Thu, 19 Jul 2018 11:40:58 +0800</pubDate><description><![CDATA[
/// &amp;lt;summary&amp;gt;
    /// 计算字符串在指定text控件中的长度
    /// &amp;lt;/summary&amp;gt;
    /// &amp;lt;param name=&quot;message&quot;&amp;gt;&amp;lt;/param&amp;gt;
    /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
    int CalculateLengthOfText(stri]]></description><category></category></item><item><title><![CDATA[unity 使用Attribute自定义一个HeaderAttribute效果]]></title><link>https://blog.youkuaiyun.com/yiwei151/article/details/80923068</link><guid>https://blog.youkuaiyun.com/yiwei151/article/details/80923068</guid><author>yiwei151</author><pubDate>Thu, 05 Jul 2018 10:42:46 +0800</pubDate><description><![CDATA[[AttributeUsage(AttributeTargets.Field,AllowMultiple = true,Inherited = true)]
public Class TitleAttribute : PropertyAttribute{
    public string title;
    public string color;//这里不能直接用Color，会报错，不知道为...]]></description><category></category></item></channel></rss>