<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[暗色调的博客]]></title><description><![CDATA[一个编程领域的懵懂自学者，人笨慢慢琢磨，长期看不懂别人写的文章资料，不知道怎么从条件A嗖的一下就转换到结果B了。]]></description><link>https://blog.youkuaiyun.com/dark_tone</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dark_tone]]></copyright><item><title><![CDATA[第一章 arduino点亮led]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/105175394</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/105175394</guid><author>dark_tone</author><pubDate>Sun, 29 Mar 2020 12:49:53 +0800</pubDate><description><![CDATA[ide
首先需要安装arduino的专用ide，然后在工具栏选择好对应的开发板与端口。

另外一定要在安装的时候同意安装对应的驱动，否则arduino无法正常工作。

写好的代码需要验证，也就是编译成二进制，但此时文件保存在电脑里的。

所谓的上传就是把电脑中编译好的二进制代码，给传送到arduino单片机的存储部分。
Arduino Uno 是一款基于 微控制器 ATmega328P的开发板。它...]]></description><category></category></item><item><title><![CDATA[unity --24 物理引擎--刚体，碰撞体]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103725805</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103725805</guid><author>dark_tone</author><pubDate>Fri, 27 Dec 2019 12:03:40 +0800</pubDate><description><![CDATA[刚体
物理引擎：模拟真实世界中物体的物理特性。
带有刚体组件的游戏物体，刚体组件可使游戏对象受物理引擎控制，在受到外力时产 生真实世界中的运动。

质量Mass：物体的质量。
•阻力Drag：当受力移动时物体受到的空气阻力。0表示没 有空气阻力，极大时可使物体停止运动
•角阻力Angular Drag：当受扭力旋转时物体受到的空气阻 力。0表示没有空气阻力，极大时使物体停止旋转。
•使用重力Use...]]></description><category></category></item><item><title><![CDATA[unity --23 世界坐标与局部坐标]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103721838</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103721838</guid><author>dark_tone</author><pubDate>Fri, 27 Dec 2019 06:53:08 +0800</pubDate><description><![CDATA[世界(全局)坐标系：整个场景的固定坐标，不会变化，且只有一个。
局部坐标系：每个物体都有自己的独立的坐标系，原点为模型轴心点，随物体移动或旋转而改变。
所以单独给出一个vector3(0,0,1)或者vector3.forward，我们并不知道它属于哪个坐标系（原点在哪），也就不知道该向量的方向和大小。
前面之所以能用magnitude和normalized，是因为unity中vector向量运算...]]></description><category></category></item><item><title><![CDATA[unity --22 数学基础- 四元数和欧拉角]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103700520</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103700520</guid><author>dark_tone</author><pubDate>Wed, 25 Dec 2019 17:55:57 +0800</pubDate><description><![CDATA[欧拉角
三个数字来保存方位，共用vector3，但此时它不代表向量。
优点
•仅使用三个数字表达方位，占用空间小。
•沿坐标轴旋转的单位为角度，符合人的思考方式。
•任意三个数字都是合法的，不存在不合法的欧拉角。
//欧拉角，每次叠加（1，0，0）旋转
  transform.eulerAngles+=transform.right;
         

//与前者等效，但实际涵义不同，内部使用...]]></description><category></category></item><item><title><![CDATA[unity --21 数学基础---三角函数]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103643301</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103643301</guid><author>dark_tone</author><pubDate>Tue, 24 Dec 2019 18:25:08 +0800</pubDate><description><![CDATA[角度Degree与弧度Radian
两条射线从圆心向圆周射出，形成一个夹角和夹角正对的一 段弧。当弧长等于圆周长的360分之一时，夹角为1度。
如果弧长等 于圆的半径时，夹角为1弧度。

可见单位弧度的计量比角度要大得多。
API：弧度=角度数Mathf.Deg2Rad
API：角度=弧度数Mathf.Rad2Deg
日常生活中人类用角度比较多，但是在unity中，计算都是弧度。
三角函数
已知根...]]></description><category></category></item><item><title><![CDATA[unity --20 数学基础---向量]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103612729</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103612729</guid><author>dark_tone</author><pubDate>Fri, 20 Dec 2019 14:42:56 +0800</pubDate><description><![CDATA[定义
一个数字列表，表示各个维度上的有向位移。假设向量是(1,1,1)，则x轴的有向位移是1，y轴的有向位移是1，z轴的有向位移是1。
向量是一个有大小有方向的物理量。
–大小就是向量的模长。
–方向描述了空间中向量的指向。

向量的大小
(1,1,1)只能代表各个维度上的有向位移，它不能代表大小，不能代表方向。
大小是模长，根据数学公式计算，几何意义是从原点到向量点线段的长度。

unity提供...]]></description><category></category></item><item><title><![CDATA[unity --19 输入及虚拟轴]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103600344</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103600344</guid><author>dark_tone</author><pubDate>Thu, 19 Dec 2019 11:20:49 +0800</pubDate><description><![CDATA[unity的输入可分为两大类：
传统输入
早期游戏开发时候，都选用这种模式，通过分别对鼠标或者键盘的按钮判断来执行：
①Input.GetMouseButton 系列：  判断鼠标，参数0是左键，参数1是右键
②Input.GetKey  系列：   判断键盘，参数可用keycode枚举
虚拟输入轴
为了解决不同控制设备之间的差异（键盘左右，或者摇杆左右操作逻辑相同），再加上玩家有自定义按键的需求...]]></description><category></category></item><item><title><![CDATA[unity--18 小总结，移动物体及旋转]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103582864</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103582864</guid><author>dark_tone</author><pubDate>Tue, 17 Dec 2019 21:47:32 +0800</pubDate><description><![CDATA[3d物体移动–变换组件
移动物体的位置基本上可以分为三个大类，
第一种是直接赋值：
        transform.position += Vector3.left * Time.deltaTime;
        //transform.position += -transform.right * Time.deltaTime;

要么是vector3的静态属性，要么是tranform的属...]]></description><category></category></item><item><title><![CDATA[c#基础--类声明与继承中的访问总结]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103530134</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103530134</guid><author>dark_tone</author><pubDate>Fri, 13 Dec 2019 17:26:31 +0800</pubDate><description><![CDATA[公有和静态
当类声明的时候，自身的字段，方法无论是私有的，还是公开的，又或者是静态的，类自身都可以直接用（无需new）：
 class Test
    {
       private int a;
       public  string str;
       private void AA(){ }
        
        public void CC() { }
      ...]]></description><category></category></item><item><title><![CDATA[unity --17  给怪物添加简易的AI]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103502512</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103502512</guid><author>dark_tone</author><pubDate>Thu, 12 Dec 2019 13:00:35 +0800</pubDate><description><![CDATA[让青蛙能左右移动，原理是给青蛙添加看不见的空物体，空物体带有位置坐标。

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

public class frog_move : MonoBehaviour 
{
     Transform leftpoint, rightpoint;
   ...]]></description><category></category></item><item><title><![CDATA[unity --16 继续完善sunny land]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103500864</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103500864</guid><author>dark_tone</author><pubDate>Thu, 12 Dec 2019 07:51:38 +0800</pubDate><description><![CDATA[添加收集品
增加cherry的动画，同时给它增加碰撞组件。

打开trigger，意味着碰撞后会有触发效果。
给物体添加tag标签

给角色添加代码，这是个回调函数，当碰撞触发器起效后调用
private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "collection")
    ...]]></description><category></category></item><item><title><![CDATA[unity --15 练习制作一个2d游戏sunny land]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103484499</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103484499</guid><author>dark_tone</author><pubDate>Wed, 11 Dec 2019 11:27:31 +0800</pubDate><description><![CDATA[刚体与碰撞体
前面弄了瓦片地图。
但此时显示出来的东西本质上还是图片。
怎么让图片能成为独立的物体？
需要添加两个部分，一个是让静态的图片能够模拟物理效果，各类刚体。

另一个让静态的图片能够模拟碰撞效果，各类碰撞体。

特别的，对瓦片地图，需要选用针对性的碰撞体，这样的好处是unity自动划分好碰撞区域，无需手动一个一个添加。


控制移动
在edit菜单栏里有一项project setting...]]></description><category></category></item><item><title><![CDATA[unity 14--瓦片地图tilemap]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103474382</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103474382</guid><author>dark_tone</author><pubDate>Tue, 10 Dec 2019 15:01:36 +0800</pubDate><description><![CDATA[首先是导入素材。

找到背景图，设置pixels per unit，每单位像素，这个选项的意义在于每一个场景中的格子，占据多少像素。

把它设计成16，意味着每格子占据1616个像素，而不是44，像素密度越高，图像看起来也就越小。
像素密度越低，图像看起来也就越大，形成平铺的效果。
图片也是一个游戏对象，可以直接拖拽进去。
地图瓦片
2d游戏很重要的一个辅助工具，Tilemap地图瓦片。
它的理念...]]></description><category></category></item><item><title><![CDATA[unity--13 小总结 查找物体和查找组件]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103471684</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103471684</guid><author>dark_tone</author><pubDate>Tue, 10 Dec 2019 12:35:58 +0800</pubDate><description><![CDATA[变换组件因为特别常用，所以unity给出了简易写法。
另外整体原则就是：可以通过一个游戏物体获取它上面的任一组件，可以通过任一组件获得挂载该组件的游戏物体。
在当前物体上找组件
①transform ：获取变换组件
② GetComponent：获取其他组件
在当前物体上找自己的子物体
①Transform item in transform  ，注意不能写成var  item in transf...]]></description><category></category></item><item><title><![CDATA[unity--12 尝试移动物体到多个路点的位置]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103441909</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103441909</guid><author>dark_tone</author><pubDate>Tue, 10 Dec 2019 10:22:10 +0800</pubDate><description><![CDATA[需求是把立方体移动到点point01，point02.
暂时想不通，简化问题，先尝试让物体移动到指定位置，比如（5，5，5）
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class NewBehaviourScript : MonoBehaviour 
{
	
	//...]]></description><category></category></item><item><title><![CDATA[unity--11 练习，制作倒计时提示]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103431797</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103431797</guid><author>dark_tone</author><pubDate>Sat, 07 Dec 2019 08:27:54 +0800</pubDate><description><![CDATA[需求：从某个时刻开始倒计时，比如02：00，01：59…………显示在Text组件里。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
//必须引入ui命名空间

public class CountDownTimer : MonoBehavio...]]></description><category></category></item><item><title><![CDATA[unity--10 引擎的API的用法]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103431769</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103431769</guid><author>dark_tone</author><pubDate>Sat, 07 Dec 2019 05:18:38 +0800</pubDate><description><![CDATA[实际开发最常用的就是unity引擎提供的API。
首先对整个体系结构有大概的了解。
自己写的类之所以能够调用unity的api，是因为继承了MonoBehaviour。
功能是由MonoBehaviour及其父类提供。
和传统c#开发不同，unity的api通常是不允许new对象的，这里很容易产生混淆。
实际后台运行的代码，unity必然也new了对象，只不过隐藏起来了，那不能new对象，我们又怎...]]></description><category></category></item><item><title><![CDATA[unity--09 生命周期+ 脚本调试]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103431429</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103431429</guid><author>dark_tone</author><pubDate>Sat, 07 Dec 2019 03:56:58 +0800</pubDate><description><![CDATA[利用unity的控制台调试

简单调试可用，类似于windows下的控制台。
利用Debug.Log(变量)或print(变量)即可输出到控制台。
注意事项：
①print就是Debug.Log的简写形式，但是有一个前提条件，脚本必须继承自MonoBehaviour，因为print是MonoBehaviour的方法。没有继承的话，只能使用Debug.Log
②这种调试代码如果在发布游戏后，必须删除...]]></description><category></category></item><item><title><![CDATA[unity--08  c#脚本的概念与要求，生命周期]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103418587</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103418587</guid><author>dark_tone</author><pubDate>Sat, 07 Dec 2019 01:17:22 +0800</pubDate><description><![CDATA[概念
前面简略的谈了下c#脚本。
首先什么是脚本？
是附加在游戏物体上用于定义游戏对象行为指令的代码。

注意事项
①脚本的文件名与脚本中的代码类名必须一致。
②生成的脚本代码没有命名空间namespace，这是unity没有自动添加，而不是不需要，自己开发的时候应该添加自己的命名空间。
③生成的类必须继承MonoBehaviour类，注意这是需要挂在游戏物体上（调用unity提供的api），如果...]]></description><category></category></item><item><title><![CDATA[unity--07 光照系统]]></title><link>https://blog.youkuaiyun.com/dark_tone/article/details/103380689</link><guid>https://blog.youkuaiyun.com/dark_tone/article/details/103380689</guid><author>dark_tone</author><pubDate>Fri, 06 Dec 2019 10:38:47 +0800</pubDate><description><![CDATA[全局光照
简称GI，能够计算直接光、间接光、环境光以及反射光的光照系统。
它的目的是为了模拟现实世界的光照。
间接光可以理解是反弹光，注意和反射光的区别，发射光强调的是和环境交互。
直接光
光源直接发出的光，通过Light组件实现

也可以使用unity已经做好的游戏对象。

DirectionalLight 平行光，PointLight 点光源，SpotLight 聚光灯，Area Light区...]]></description><category></category></item></channel></rss>