<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[ToToTofu的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/ToToTofu</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; ToToTofu]]></copyright><item><title><![CDATA[Unity 模型描边的几种方法. (Shader、GL、代码生成描绘边）]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/106441097</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/106441097</guid><author>ToToTofu</author><pubDate>Sat, 30 May 2020 18:09:43 +0800</pubDate><description><![CDATA[前言
1、前段时间工作，需要给模型描边，由于对Shader不熟悉，就直接网上找了描边Shader文件，无奈项目发布环境是WebGL，WebGL对Shader的需求比较特殊，故无法使用。
2、因为项目需要描边的物体并不多，所以萌生出，动态生成整个模型所有的边（线条），给各个边附上需要的材质球即可。(当然，也可以直接请美术在模型上描边，但这样不能实现泛光之类的效果)
3、现写下三种实现模型描边的方法，方便日后查看学习与使用。

实现
1、GL描边


原理比较简单，就是获取到模型的所有顶点，然后使用GL连线.
]]></description><category></category></item><item><title><![CDATA[Unity 第一人称、第三人称、漫游视角 控制器.]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/106437982</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/106437982</guid><author>ToToTofu</author><pubDate>Sat, 30 May 2020 11:28:28 +0800</pubDate><description><![CDATA[前言
这是以前写的人物控制器(包含第一人称、第三人称、漫游视角)，这里做个记录，方便后续参考使用.

实现



模型使用官方的，操作使用鼠标右键控制视角，键盘WASD、Shift控制人物移动.
切换到漫游视角(God)时，有BUG，待修复.


人物控制：
    /// &lt;summary&gt;
    /// 第三人称.人物移动操作.
    /// &lt;/summary&gt;
    private void MoveUpdate_ThirdController()
    {
    ]]></description><category></category></item><item><title><![CDATA[Unity UGUI ScrollView无限滚动效果]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/103566370</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/103566370</guid><author>ToToTofu</author><pubDate>Fri, 29 May 2020 17:32:19 +0800</pubDate><description><![CDATA[一、发现需求
1、在UGUI中，使用 ScrollView + 表格布局和字段自适应组件 就可以很好的实现列表功能。
2、如果列表中同时存在很多个Item时，就会造成性能不必要的浪费。
3、这时就想到，只在列表显示的地方实例化有限的Item即可。

二、实现原理
在列表滑动时，根据Content移动的位置偏差，计算出当前需要显示的Item索引，继而动态刷新Item数据

三、实现需求
1、新建一个...]]></description><category></category></item><item><title><![CDATA[Unity 使用代码生成饼状图 PieChart]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/106049398</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/106049398</guid><author>ToToTofu</author><pubDate>Fri, 29 May 2020 16:17:20 +0800</pubDate><description><![CDATA[前言

]]></description><category></category></item><item><title><![CDATA[Unity 限制物体旋转角度的坑]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/103769282</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/103769282</guid><author>ToToTofu</author><pubDate>Tue, 31 Dec 2019 16:12:30 +0800</pubDate><description><![CDATA[/// &lt;summary&gt;
    /// 旋转值 数值规范.(-180——0——180)
    /// &lt;/summary&gt;
    private float StandardRot(float pos)
    {
        if (pos &gt; 180)
        {
            pos -= 360;
        }

 ...]]></description><category></category></item><item><title><![CDATA[IEnumerator、IEnumerable的理解]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/103121115</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/103121115</guid><author>ToToTofu</author><pubDate>Mon, 18 Nov 2019 14:07:35 +0800</pubDate><description><![CDATA[请直接看以下代码，用foreach来了解Ienumerator和IEnumerable的原理。
    class Program
    {
        static void Main(string[] args)
        {
            //1.
            int[] array_Int;
            array_Int = new int[...]]></description><category></category></item><item><title><![CDATA[Unity 限制四元数 旋转方向轴X.]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/89518430</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/89518430</guid><author>ToToTofu</author><pubDate>Thu, 26 Sep 2019 17:59:59 +0800</pubDate><description><![CDATA[private Quaternion ClampRotationAroundXAxis(Quaternion q)
    {
        q.x /= q.w;
        q.y /= q.w;
        q.z /= q.w;
        q.w = 1.0f;

        float angleX = 2.0f * Mathf.Rad2Deg * Mathf...]]></description><category></category></item><item><title><![CDATA[Unity 贝塞尔曲线（Beizer curve）的原理与运用]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/100981660</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/100981660</guid><author>ToToTofu</author><pubDate>Sat, 21 Sep 2019 16:02:08 +0800</pubDate><description><![CDATA[https://www.jianshu.com/p/8f82db9556d2

]]></description><category></category></item><item><title><![CDATA[Unity ParticleSystem 控制粒子移动到一个点，沿路径移动.]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/100692228</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/100692228</guid><author>ToToTofu</author><pubDate>Tue, 10 Sep 2019 12:05:36 +0800</pubDate><description><![CDATA[一、粒子移动到一个点.
方案1：粒子系统模拟空间为Local.


	private Transform m_Transform;
    private ParticleSystem m_ParticleSystem;
    private ParticleSystem.Particle[] m_particles;

    public Transform target_Trans;  /...]]></description><category></category></item><item><title><![CDATA[C# 计算文件、字符串的MD5值]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/88220337</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/88220337</guid><author>ToToTofu</author><pubDate>Wed, 06 Mar 2019 10:11:24 +0800</pubDate><description><![CDATA[/// &amp;lt;summary&amp;gt;
    /// 计算字符串的MD5值
    /// &amp;lt;/summary&amp;gt;
    public static string md5(string source) {
        MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
        byte[] ...]]></description><category></category></item><item><title><![CDATA[Unity3D 旧版Animation.  Time.timeScale = 0暂停，播放动画.]]></title><link>https://blog.youkuaiyun.com/ToToTofu/article/details/86614846</link><guid>https://blog.youkuaiyun.com/ToToTofu/article/details/86614846</guid><author>ToToTofu</author><pubDate>Wed, 23 Jan 2019 17:42:06 +0800</pubDate><description><![CDATA[注意：Animation Clip 要在Debug模式下，设置为Legacy.
或者用Notepad++打开Animation Clip文件，把 m_Legacy: 0 设置为 m_Legacy: 1
在Time.timeScale = 0前，开启下面的&amp;quot;播放动画&amp;quot;协程即可.
IEnumerator PlayAnimation(Animation animation, string clipNam...]]></description><category></category></item></channel></rss>