2019.4.1

同一物体上的脚步运行顺序(awake)

Project settings -> script execution order 时间小先执行

不同物体上的同一脚本执行顺序(awake)

通过其他函数的调用,不使用awake

2019.4.29

Range(min,max) number 浮点数

Color (number,number,number,number) 颜色

2D “name” {options} 2D纹理

Rect “name” {options} 长方形(非2次方)纹理

Cube “name” {options} 立方贴图纹理

Float number 浮点数

Vector (number, number, number, number) 四元数的容器

2019.6.28

//可视化图标辅助 创建文件夹Gizmos hbs01tif.png图片放入其中

void OnDrawGizmos() {

Gizmos.DrawIcon(this.transform.position, "hbs01tif.png");

Gizmos.DrawLine(new Vector3,new Vector3);

}

//编辑器设置 %q设置快捷键(ctrl+w) 根据返回值禁用编辑器功能

%代表Ctrl

#代表shift

&代表alt

_代表无修改键

[MenuItem("PathTool/SetParent %q", true)]

//组件齿轮功能编辑

[ContextMenu("BuildPath")]

2019.7.10

//功能代码热更新可行性研究

  1. Dll

1.将C#单个脚本文件生成dll,再更改为bytes格式文件进行AssetBundle打包,可进行动态加载外部代码。VS编辑器直接生成的dll是整个项目生成的dll,不可使用。CMD命令使用csc.exe生成单个C#文件dll,提示error CS0246: 未能找到类型或命名空间名称“UnityEngine”(是否缺少 using 指令或程序集引用?)。以上结果暂定不可使用dll进行功能代码的动态加载。

使用unity反射来获取类库。

https://blog.csdn.net/qq_39484391/article/details/80888678

https://blog.csdn.net/dongzi860103/article/details/13511031

2.使用dll加ab包方式,解决PC端进行代码热更新的问题,但是WEBGL不支持反射机制不可使用。上次不可使用,是因为dll生成框架没有选择正确。

2.UniLua

UniLua可实现C#和Lua语言的相互调用,可加载AB对程序进行功能代码的热更新。AB包的资源内容不知,使用AssetStudio解包出为txt文件并且乱码,暂时无法解决该问题。

发布WEBGL不成功会报错,不可使用。

  1. XLua

XLua基于自己的框架可以进行C#和Lua代码的相互调用,并且可以对已经写好的C#代码打上标签以此可以从外部进行修改,以及可以从外部添加额外的功能代码。以上都只能在PC端进行操作,WEBGL端不可使用。XLua框架不可使用。

更新了XLua版本,可以使用WebGL发布,但是运行会报错。

4.MoonSharp

https://www.cnblogs.com/skig/p/netcore-lua-MoonSharp.html

使用MoonSharp和Lua进行WebGL上的功能代码热更新测试,WebGL运行崩溃,可能是文件流的问题。

使用BestHttp成功解决WebGL运行崩溃问题,并且代码加载成功。

2019.7.16

//AB包上传到服务器

使用post

https://cloud.tencent.com/developer/ask/216576

2019.7.18

//BestHttp Post

使用BestHttp插件,nginx本地服务器,来进行服务器上的文本文件数据获取,得到的数据和本地直接通过Resouces获取的数据不同,数据长度相差一位。通过测试通过BestHttp获取到的数据比Resouces的多一位到第一位上,所以直接移除第一位便可使两个数据相同。

2019.7.25

//获取UI宽高

RectTransform rect = transform.GetComponent<RectTransform>();

rect.rect.width

//UI蓝图模式

可以固定UI响应区域

2019.8.6

//XLua 用做功能代码热更新

https://www.cnblogs.com/takanashi/p/11068995.html

https://github.com/Tencent/xLua/blob/master/docs/source/src/v1/guide/api.md

2019.8.9

//shader graph

pbr shader受光照效果

unlit shader不受光照效果

2019.9.19

//远程桌面连接镜头控制不可转动问题

  1. 自己的镜头控制脚本:在编辑器、EXE中右键不可使用,但在Html中右键是可使用的。

  2. 官方的第一人称以及第三人称镜头控制脚本:在编辑器下不可使用。

  1. Html:鼠标按键可被检测,并且镜头控制正常。

  2. EXE:鼠标按键可被检测,镜头控制不起作用。

  3. 编辑器:鼠标按键可被检测,镜头控制不起作用。

  1. 远程桌面连接镜头控制无用的原因 Input.GetAxis获取为0。

  2. Input.GetAxis返回值含义:返回输入设备在方法参数axisName所指定的轴上的位移量,该位移量由此次调用该方法时输入设备在轴上的位置与上次调用该方法时输入设备在轴上的位置相减得出。

    1. 解决:采用前后帧鼠标位置差值检测。

2019.12.3

//鼠标拖动物体移动

screenPosition = Camera.main.WorldToScreenPoint(transform.localPosition);

//获取鼠标在场景中坐标

mousePositionOnScreen = Input.mousePosition;

//让场景中的Z=鼠标坐标的Z

mousePositionOnScreen.z = screenPosition.z;

//将相机中的坐标转化为世界坐标

mousePositionInWorld = Camera.main.ScreenToWorldPoint(mousePositionOnScreen);

//物体跟随鼠标X轴移动

transform.localPosition = new Vector3(mousePositionInWorld.x, transform.localPosition.y, mousePositionInWorld.z);

//字符串添加组件

//获取组件全名

componment.GetType().AssemblyQualifiedName

Type type = Type.GetType(lists[i].componentsName[j]);

gameObject.AddComponent(type);

2020.4.10

Unity阻止鼠标在UI上时执行某种操作(UGUI)

if (UnityEngine.EventSystems.EventSystem.current.IsPointerOverGameObject())

return;

物体双击和单机

private Ray _ray;//物理射线相关

public RaycastHit _hit;//物理射线相关

private bool _first = true;//新一轮标识(或者也可以叫是否结束的标识)

private bool _flag = true;//单击或双击的标识(默认单击)

private void Update()

{

monitor();

}

/**

* 鼠标单、双击监听

*/

private void monitor()

{

//触发鼠标左键点击

if (!Input.GetMouseButtonDown(0)) return;

//射线检测到的对象是当前对象

if (Camera.main != null) _ray = Camera.main.ScreenPointToRay(Input.mousePosition);

if (!Physics.Raycast(_ray, out _hit) || _hit.collider.gameObject != gameObject) return;

_flag = !_flag;

//上一次的事件是否已经执行完毕,也就是判断是否为新一轮

if (!_first) return;

_first = false;

//初始化定时器,300毫秒后执行预定方法

Invoke("Timer", 0.3f);

}

/**

* 定时调用函数

*/

private void Timer()

{

//进行判断

if (_flag)

{

OnDblclick();

}

else

{

OnClick();

}

//定时调用结束,重置标识

_first = true;

_flag = true;

}

/**

* 单击事件

*/

private void OnClick()

{

Debug.Log(gameObject.name + "单击事件被触发");

//Relation.GetComponent<RectTransform>().SetAsLastSibling();

}

/**

* 双击事件

*/

private void OnDblclick()

{

Debug.Log(gameObject.name + "双击事件被触发");

//Destroy(gameObject);

}

2020.4.15

使用JSON格式作为配置文件

1.开始使用的Unity插件为 listjson,但因为作为配置文件需要良好的容错性和灵活性,然而 listjson数据对象必须和json一对一,匹配机制十分严格固需要重新寻找其他的JSON读取方式。

2.目前unity自带的 JsonUtility,JsonUtility因不能解析复杂的json所以不在考虑范围内。

3. Newtonsoft.Json 可以解析复杂的json,不需要和json字段一对一 ,灵活。

json字段为字符串,无对应值时,该值为赋值null

json字段为布尔值,无对应值时,该值为赋值false

可以设置参数默认值

Unity3d常用知识相关推荐

  1. python中pandas格式_Python学习笔记之数据分析中Pandas常用知识

    前言 Pandas基于两种数据类型:series与dataframe. 一个series是一个一维的数据类型,其中每一个元素都有一个标签.series类似于Numpy中元素带标签的数组.其中,标签可以 ...

  2. 2.Unity3d常用按键

    Unity3d常用按键和组合键: 1.鼠标左键:选中物体 2.鼠标中键:平移视角,和手型功能一样 3.鼠标右键:旋转观察角度 4.Alt+鼠标左键:旋转观察角度 5.Alt+鼠标右键:拉远拉近 转载于 ...

  3. Apache的压力测试以及web性能优化的常用知识总结

    这篇文章主要介绍了Apache的压力测试以及web性能优化的常用知识总结,笔记由<构建高性能web站点>这本高人气书籍整理而来,需要的朋友可以参考下  什么是带宽? 误解:"数据 ...

  4. Oracle常用知识

    文章目录 Oracle常用知识 创建临时表空间 创建数据表空间 创建用户并指定表空间 修改用户默认表空间 查询用户以及用户对应的表空间 查询当前用户的所有表及表空间 为用户授予权限 查看当前用户权限 ...

  5. 光模块、连接器、光纤的常用知识

    光模块的常用知识 以太网交换机常用的光模块有SFP,GBIC,XFP,XENPAK.它们的英文全称,中文名不常用,可以简单了解下 SFP: Small Form-factor Pluggable tr ...

  6. 网络基础:计算机网络由基础到深入常用知识集锦!

    网络技术的发展给社会带来了诸多益处,随着网络的广泛应用,网络给我们带来便利的同时,网络故障也时有发生.本文探讨了计算机网络中常见的网络问题及计算机网络维护方法,保证计算机网络运行稳定. 在日常使用过程 ...

  7. 电脑计算机网络由基础到深入常用知识集锦!

    网络技术的发展给社会带来了诸多益处,随着网络的广泛应用,网络给我们带来便利的同时,网络故障也时有发生.本文探讨了计算机网络中常见的网络问题及计算机网络维护方法,保证计算机网络运行稳定. 在日常使用过程 ...

  8. 计算机网络常用知识笔记(超全面)!

    网络技术的发展给社会带来了诸多益处,随着网络的广泛应用,网络给我们带来便利的同时,网络故障也时有发生.本文探讨了计算机网络中常见的网络问题及计算机网络维护方法,保证计算机网络运行稳定. 在日常使用过程 ...

  9. android ListView常用知识总结

    先来看下项目主要内容: ListView中填充数据: 重现添加数据后置顶,具体阐明了决解方案,如下: 刷新适配器后没有响应的错误现象,具体阐明了决解方案,如下: 正确示范一: 1 2 3 4 5 6 ...

最新文章

  1. mapreduce python实例_MapReduce程序实例(python)
  2. redis单线程架构
  3. DNS之三 辅助区域和名称解析过程
  4. H264关于RTP协议的实现
  5. python单链表实现荷兰国旗问题_快速排序深入之荷兰国旗问题
  6. slowfast 跑多卡的时候遇到问题
  7. 依赖倒置原则_面向对象的设计原则你不要了解一下么?
  8. pandas将某列复制到另一个表_使用pandas将列从一个数据帧复制到另一个数据帧的最快方法?...
  9. rsync通过服务同步、linux日志、screen工具
  10. seay代码审计mysql插件报错_Seay源代码审计系统v2.0源码
  11. ioncube php encode,ioncube 加密
  12. springboot中.yml 用jasypt 密码加密
  13. 噇字符集linux增加,『转』Unicode汉字编码表
  14. paddleocr cpp_infer 操作说明
  15. 基于STM32根据DL/T 645-2007通讯协议利用RS485进行抄表并将电压等数据利用HC-05蓝牙实时传输至上位机显示
  16. Eclipse简介、安装及常用快捷键
  17. LTE学习-信道估计(LS算法)
  18. 解除excel工作表密码保护方法
  19. 英语初级语法--句子成分(词性)(名词)
  20. Java基础:反射的详细介绍与使用

热门文章

  1. MSN也支持在线加入了
  2. 编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。 可以弹奏的乐器包括二胡、钢琴和琵琶。 实现思路及关键代码
  3. Dropbox刷空间实战
  4. 海报 样机 字体 高清图 你想要的平面素材 应有尽有哦!
  5. 今天,「神舟十二号」发射!这次载人航天有什么不一样?
  6. ubuntu下使用.deb安装显卡驱动+cuda8.0
  7. matlab ppt 赵银娣,中国矿业大学(徐州)环境与测绘学院研究生导师:赵银娣
  8. windows检测电脑硬盘健康的工具
  9. linux 写pci配置空间,[转载]应用程序中pci配置空间读写
  10. 个人征信牌照发放在即 业内:大数据并不便宜