<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cuijiahao的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cuijiahao</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cuijiahao]]></copyright><item><title><![CDATA[Lua监听事件观察者模式]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/126308658</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/126308658</guid><author>cuijiahao</author><pubDate>Fri, 12 Aug 2022 17:43:28 +0800</pubDate><description><![CDATA[代码】Lua监听事件观察者模式。]]></description><category></category></item><item><title><![CDATA[VsCode使用EmmyLua插件调试Unity工程Lua代码]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/126282454</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/126282454</guid><author>cuijiahao</author><pubDate>Thu, 11 Aug 2022 11:56:32 +0800</pubDate><description><![CDATA[一、VSCode安装EmmyLua
二、添加配置文件
三、设置配置文件
四、添加Lua断点调试入口
五、运行unity测试断点
]]></description><category></category></item><item><title><![CDATA[Unity 绘制弹球和台球的运动轨迹]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/125517363</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/125517363</guid><author>cuijiahao</author><pubDate>Wed, 29 Jun 2022 11:39:23 +0800</pubDate><description><![CDATA[台球、弹球的轨迹方案]]></description><category></category></item><item><title><![CDATA[Android Studio 撤销/反撤销的快捷键]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/125390486</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/125390486</guid><author>cuijiahao</author><pubDate>Tue, 21 Jun 2022 14:30:18 +0800</pubDate><description><![CDATA[在用Android Studio敲安卓代码时，经常会用到Ctrl+Z（撤销一步的操作），烦人的是，由于用惯了其他开发工具，总会习惯性Ctrl+Y，但Ctrl+Y在Android Studio里 是删除一行。]]></description><category></category></item><item><title><![CDATA[UGUI UI坐标转世界坐标]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/124879515</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/124879515</guid><author>cuijiahao</author><pubDate>Fri, 20 May 2022 11:06:08 +0800</pubDate><description><![CDATA[Vector3 ptScreen = RectTransformUtility.WorldToScreenPoint(UIManager.Instance.UICamera, m_IconGold.transform.position);
ptScreen.z = 0;//根据你需要的 相对于camera3D的Z值来设置该值

Vector3 ptWorld = Camera.main.ScreenToWorldPoint(ptScreen);

UIManager.Instance.UICamera是你.]]></description><category></category></item><item><title><![CDATA[Unity 区域内生成多个不穿透的物体]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/124172666</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/124172666</guid><author>cuijiahao</author><pubDate>Thu, 14 Apr 2022 15:30:36 +0800</pubDate><description><![CDATA[红色区域内生成多个互相不穿透的物体

1、四周的边界需创建大尺寸的Collider防止穿透



并且Rigidbody2d需进行如下设置，设置Constraints锁定固定物体的位置和旋转角度，防止被生成的物体挤出



2、设置要生成的物体的Collider和Rigidbody2d，这里我锁定了旋转



3、代码如下：


using System;
using System.Collections;
using System.Collections.Generic;
using System.Lin]]></description><category></category></item><item><title><![CDATA[Unity 使用tiledmap解析地图]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/124044533</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/124044533</guid><author>cuijiahao</author><pubDate>Fri, 08 Apr 2022 16:28:59 +0800</pubDate><description><![CDATA[1、先使用tiledmap编辑地图，图层用来刷图块，对象用来定义单个格子的数据



2、为每个图块调属性



3、图块需要单独配置属性的就必须创建对象，并设置值



右键设置属性



4、导出json文件







5、代码如下，详细看相应注释


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

public class tmx : Mono...]]></description><category></category></item><item><title><![CDATA[Unity聊天框功能，背景图片随文字大小而改变]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/124041263</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/124041263</guid><author>cuijiahao</author><pubDate>Fri, 08 Apr 2022 14:52:05 +0800</pubDate><description><![CDATA[一、创建UI物体

新建一个Canvas，然后创建一个 Image，再在 Image 里面添加一个子物体 Text

如图



场景中效果



此时并没有设置任何参数。

二、添加组件

给 Image 添加两个组件 horizontal layout group，content size fitter

注意图中的设置参数，如下图：.



这时候，场景中的布局自动就变成了这样



三、运行

此时还没有写任何的代码，效果已经实现了，运行后，在编辑器中我们改变 Text 的文本的内容，可以看到，场景]]></description><category></category></item><item><title><![CDATA[Unity Rigidbody碰撞检测的三种模式Collision Detection]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/123729371</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/123729371</guid><author>cuijiahao</author><pubDate>Fri, 25 Mar 2022 10:32:01 +0800</pubDate><description><![CDATA[Discrete（离散检测）：当物体这一帧还在前面，下一帧就到后面去了，就检测不到，不适用于高速运动的物体

Continuous（连续检测）：防止对象穿过所有静态碰撞体

Continuous Dynamic（动态连续检测）：防止对象穿过所有静态碰撞体以及设置为Continuous或Continuous Dynamic的刚体
...]]></description><category></category></item><item><title><![CDATA[Unity 脚本控制Spine播放动画]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/123716149</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/123716149</guid><author>cuijiahao</author><pubDate>Thu, 24 Mar 2022 17:12:33 +0800</pubDate><description><![CDATA[1、定义


public SkeletonAnimation ani_DaJingYu;

2、这个方法为播放完正在播放的动作后播放下此动作。第一个参数作用不详，第二个参数为动画名称应该为字符串，这里我我放进字典里面直接调用，第三个为控制是否loop，第四个延迟多少时间播放。


ani_DaJingYu.state.AddAnimation(0, aniDJYNam[dicKeyNum], true, 0f);

3、这个方法作用类似，停止正在播放的动作直接播放此动作，3个参数跟上述一样，不过没有延迟。]]></description><category></category></item><item><title><![CDATA[Unity 按钮点击缩放]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/123655115</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/123655115</guid><author>cuijiahao</author><pubDate>Tue, 22 Mar 2022 10:55:08 +0800</pubDate><description><![CDATA[将下面的代码拖到Button上即可


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

public class ButtonHandler : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
{
    public void OnPointerDown(PointerE.]]></description><category></category></item><item><title><![CDATA[Unity Spine切换动画]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/123642215</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/123642215</guid><author>cuijiahao</author><pubDate>Mon, 21 Mar 2022 18:20:48 +0800</pubDate><description><![CDATA[Unity使用Spine切换动画时会自动加入融合，这时动画会产生过渡的效果，如果想直接切换则按下图操作即可

把Default Mix Duration设置为0








public void Awake()
    {
        skeletonAnimation = transform.Find("SkeletonAnimation").GetComponent&lt;SkeletonAnimation&gt;();
        var animationState = skelet.]]></description><category></category></item><item><title><![CDATA[Unity 降低粒子占用的Batches]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/123528442</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/123528442</guid><author>cuijiahao</author><pubDate>Wed, 16 Mar 2022 16:12:44 +0800</pubDate><description><![CDATA[优化前



优化后



优化过程



这个特效由两个粒子特效组成，把每个粒子特效的OrderInLayer重新设置确保不要重复，见下图：










]]></description><category></category></item><item><title><![CDATA[Unity 让图片颜色发光发亮]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/123376975</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/123376975</guid><author>cuijiahao</author><pubDate>Wed, 09 Mar 2022 14:33:56 +0800</pubDate><description><![CDATA[Color color = GetComponent&lt;SpriteRenderer&gt;().material.color;//记录原颜色
Sequence quence_material = DOTween.Sequence();
quence_material.Append(GetComponent&lt;SpriteRenderer&gt;().material.DOColor(color * 1.1f, 0.1f));//让颜色乘一个系数
quence_material.Append(Ge.]]></description><category></category></item><item><title><![CDATA[SortingGroup组件的坑，使用时Batches会加1]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/123211933</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/123211933</guid><author>cuijiahao</author><pubDate>Tue, 01 Mar 2022 18:00:28 +0800</pubDate><description><![CDATA[使用这个组件时Batches会加1！！！！！！



建议在父节点用此组件或者用自身的sortinglayer








]]></description><category></category></item><item><title><![CDATA[Unity Color与十六进制颜色互相转换]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/123135865</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/123135865</guid><author>cuijiahao</author><pubDate>Fri, 25 Feb 2022 16:26:31 +0800</pubDate><description><![CDATA[Unity中已经提供了现成的方法，可以直接调用：

ColorUtility.TryParseHtmlString：传入的字符串是 “#FFFFFF”的格式，用法如下：


Color nowColor;
ColorUtility.TryParseHtmlString("#FECEE4", out nowColor);

Color转回去使用下面的方法：

ColorUtility.ToHtmlStringRGB：传入的是一个Color结构体，返回一个字符串，形式是“FFFFFF”，用法如下：


stri]]></description><category></category></item><item><title><![CDATA[Unity 获取Sprite的宽和高]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/122879769</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/122879769</guid><author>cuijiahao</author><pubDate>Fri, 11 Feb 2022 14:21:05 +0800</pubDate><description><![CDATA[float bound_x = go.GetComponent&lt;SpriteRenderer&gt;().bounds.size.x;
float bound_y = go.GetComponent&lt;SpriteRenderer&gt;().bounds.size.y;
]]></description><category></category></item><item><title><![CDATA[Unity Vector3.Reflect反射线使用和计算原理(光打到平面上反射)]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/122860435</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/122860435</guid><author>cuijiahao</author><pubDate>Thu, 10 Feb 2022 14:41:47 +0800</pubDate><description><![CDATA[计算向量投射到物体上的反射向量

碰撞模拟：


public class test3 : MonoBehaviour
{
    Vector3 dir;
    Vector3 pos;
    private void Start()
    {
        dir = transform.right;
        pos = transform.position;
    }

    private void Update()
    {
        transform.posi...]]></description><category></category></item><item><title><![CDATA[Unity 将世界坐标转UI坐标]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/122322113</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/122322113</guid><author>cuijiahao</author><pubDate>Wed, 05 Jan 2022 14:07:17 +0800</pubDate><description><![CDATA[unity的物体是在世界坐标里的，如果让UI里的物体对准世界里的物体需要一系列的转换。


private void ShowTowerUpgrade(TowerCtrl ctrl)
{
    towerCtrl = ctrl;//3D世界里的物体        
    transform.localPosition = WorldPointToUILocalPoint(ctrl.transform.position);
}    

private Vector3 WorldPointToUILoca]]></description><category></category></item><item><title><![CDATA[Unity 使用BmFont制作艺术字体]]></title><link>https://blog.youkuaiyun.com/cuijiahao/article/details/122252245</link><guid>https://blog.youkuaiyun.com/cuijiahao/article/details/122252245</guid><author>cuijiahao</author><pubDate>Fri, 31 Dec 2021 11:46:39 +0800</pubDate><description><![CDATA[BMFont制字工具 和 Unity转换字体工程（BMFontForUnity）下载地址：

BMFontForUnity制作艺术字体-Unity3D文档类资源-优快云下载

1、制作艺术字

先准备0-9的数字图片





BMFont安装好之后，打开位图字体制作工具，长这样的：



打开之后长这样的：



再单击 Image -&gt; Import image,把你要做成位图字体的图片依次导入进来。



注意下这个：

这个Id填的是你导入数字的ASCII，我导入的是 数字 “0...]]></description><category></category></item></channel></rss>