30天学习计划(2019.9.27更新)

发布于 2021-07-28  239 次阅读


30天学习计划(2019.9.27更新)

每天学习打卡贴,不想堕落啦,每天进步一点点。希望能坚持一个月,想感受一下坚持之后的喜悦。那么就从现在开始吧。

2019年9月18日更新:

Unity其实是不能满足大家的全部需求的,那么如果我们想要一些特殊的功能要怎么办呢,unity给我们提供了扩展接口。

先从一个简单的创建窗口开始吧。

首先我们在工程中创建一个Editor目录,用来存储我们编辑器代码。

在Editor目录创建第一个编辑器脚本吧,我这里脚本叫做MyWindows.cs,Unity创建的脚本默认都是继承自MonoBehaviour的,这里将MyWindows类继承自EditorWindow。并且在头部引用using UnityEditor;代码如下。

using UnityEngine;
using UnityEditor;

public class MyWindows : EditorWindow
{

    [MenuItem("Window/My Window")]//这里就是Unity的菜单了,这个菜单就可以在Windows下看到有一个My Window选项了
    public static void ShowWindows()
    {
         EditorWindow.GetWindow(typeof(MyWindows));//这里通过GetWindow来打开一个空窗口。
    }

    private void OnGUI()//这里就是我们需要绘制窗口的地方了,如果什么也不写,那就是打开一个空窗口。
    {
    }
}

创建的窗口如下图所示:

现在我们开始绘制一个简单的界面。

using UnityEngine;
using UnityEditor;

public class MyWindows : EditorWindow
{
    private string myString = "hello World";
    private bool groupEnable;
    private bool myBool;
    private float myFloot = 1.23f;

    [MenuItem("Tools/Windows2")]
    public static void ShowWindows2()
    {
        EditorWindow.GetWindow(typeof(MyWindows));
    }

    private void OnGUI()
    {
        //窗口的标题。
        GUILayout.Label("base strings", EditorStyles.boldLabel);
        //文本输入框。
        myString = EditorGUILayout.TextField("text field", myString);
        //创建一个可开关的组。
        groupEnable = EditorGUILayout.BeginToggleGroup("Optional Settings", groupEnable);
        //在组中创建一个开关。
        myBool = EditorGUILayout.Toggle("toggle", myBool);
        //创建一个滑动条,滑动条的范围从-3到3区间。
        myFloot = EditorGUILayout.Slider("Slider", myFloot,-3,3);
        //创建组结束标签
        EditorGUILayout.EndToggleGroup();
    }

}

这里只有勾选了Optional Settings才可以设置下面的参数哦,那么今天的分享就到这里了,明天见。

2019年9月19日更新:

首先,先介绍一款mac可以使用的动态图录屏工具LICEcap,本打算录制一些动态图,但是mac系统下还真的不知道用什么好,百度一下,发现了这款软件,先分享一下。LICEcap官网,可以在这里下载,或者点击下载按钮下载。

https://www.unityschool.cn/wp-content/uploads/2019/09/licecap129.dmg_.zip

那么进入正题,今天讲解一个命令,ExecuteInEditMode。将脚本添加这个命令之后,即使没有点击play按钮,这个脚本也是会运行的。下面就以LookAt方法为例。

在场景中创建两个cube,并在Update()中让Cube1一直朝向Cube2,代码如下,创建LookAtPoint.cs脚本,将该脚本挂在Cube1上面。

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

[ExecuteInEditMode]
public class LookAtPoint : MonoBehaviour
{

    public Transform lookAtPoint;
    void Update()
    {
        transform.LookAt(lookAtPoint);
    }
}

这样,即使项目不运行,在Editor视图下,脚本也会执行了,看一下效果。

是不是很有意思呢,那么,今天的分享就到这里了。我们明天再见。(今天真的是逼着自己在学习,这才第二天,但是九点才下班,真的很累。)
还有,这款录屏软件真的很好用,而且录制的gif动图也不大,最主要的是免费,哈哈。

2019年9月20日更新:

今天没有样例分享了,不过也不是没有学习的,了解了Editor的一些基本原理之后,就要查阅一些资料来深入的了解Editor的各种用法。这里查阅了一些资料,把我查阅过的一些好的文章分享在这里。

Editor编辑器相关文章

这里涵盖了基础和进阶,不过时间有限,我并没有一一尝试。Editor的学习还是应该在实践中去积累,因为很多的接口我们实际的开发中都是不常用到的。不过还是要了解一下,不要到了看到这个接口的时候两眼一黑就好了。接下来我将不再继续研究Editor了。后面我会结合自己的想法做一些有趣好玩的功能。那么,今天的学习就到这里了,虽然今天比较水,但是坚持依旧。

2019年9月22日更新:

今天写了新的文章《我常用的Unity单例模式》欢迎去看。
昨天工作结束,今天就放假了,然后断更了,难受。所以今天就写了一篇文章来弥补一下。不过在版块里还是缺少了昨天的日期,可惜。

2019年9月23日更新:

今天接到新任务,要做一个页面,摘录出其中的一个效果说一下。
一个滑动列表,设定一个位置,当列表中的对象滑动到这个位置的时候,要放大显示,其他的地方要按照比例缩小。

和大佬讨论了一下思路。我准备设置一个位置,算出滑块到这个位置的距离,再设定一个定值去计算比例,最后,设置滑块的scale来设置滑块的大小。思路就是这样,但是晚上实现了一会,头疼的厉害,躺了一会就夜里十一点多了。

为了明天的正常工作状态,我还是准备洗洗睡了,明天实现好了再来分享。那么今天就到这里了。并不是懈怠了哦。晚安。

2019年9月24日更新:

昨天的效果做好了就像下面这样,相关文章在下面贴出来。又坚持一天,开心。

实现在这里:点击跳转

2019年9月26日更新:

来说一下这两天都在干嘛,昨天呢,写了一下上面滑动列表的滑块居中,但是还有问题,本来打算今天继续的,但是加班到十点多,累的不行,就不更新了。明天看看状态怎么样。

## 2019年9月27日更新:

现在北京时间22:34,才要从公司回家,就不写东西了。回去洗洗睡。


"You got to put the past behind you before you can move on. "