遇到的问题:
1.使用别人的代码时出现类引用失败的问题(UnityEngine是可以正常引用的)
解决方法:
- 删掉项目工程根目录下的.sln
应该是不同的电脑的不同的配置这些导致sln文件不同,可能会干扰到。
2.Moving Logs/AssetImportWorker 1.log to Logs/AssetImportWorker 1-prev.log: 另一个程序正在使用此文件,进程无法访问。
【解决】Moving Logs/AssetImportWorker 1.log to Logs/AssetImportWorker 1-prev.log: 另一个程序正在使用此文件,进程无法访问。
3.Unity太远的东西看不到,会看到天空盒。
解决方法:调整摄像机的Clipping Planes 参数
4.射线检测不到
解决方法:添加碰撞体 射线检测需要碰撞体(可以勾选为Trigger)
5.写入Excel中的时候老是出现莫名其妙的报错 有的文件可以有的不行
貌似是因为Excel有超链接的原因 读取不会有问题,但是写入会找不到对应的表
6.导入库的时候 下载dll文件放在uinty里然后使用 unity没有报错但是vs里面报错了
因为unity添加了引用而vs没有添加引用,不知道为什么unity依赖了vs但是没有完全依赖,
解决方法: 先选中这个 然后点击这个 开启那个引用那个选项 开启了之后添加引用 按照你导入的dll文件路径添加就行了
学到的知识:
-
TextAsset类可以用来读取项目中txt格式的文本内容,使用.text可以得到文本内容的字符串 -
yield return WWW:等待一个网络请求完成后从当前位置继续执行(C#协程的用法。) -
as 运算符类似于强制转换操作;但是,如果转换不可行,as 会返回 null 而不是引发异常。 -
typeof 用于获取类型的 System.Type 对象。 配合Resources.Load(“路径”,Type) 文件路径和Type类型 -
ToString( string format ) format 是可选的格式化代码字符串。(【C#】ToString()参数中格式解析大全) -
UI中的一些简单的点击事件可以直接用代码添加写成匿名函数的形式,(一个bool 的参数传参就是他的SetActive,应该是?) -
Mathf.Clamp public static float Clamp(float value, float min, float max); 如果value处于min和max之间则返回value值,小于min则返回min值,大于max这返回max值 -
ref和out
一个函数中,使用out 或ref 作为形参前的关键字,那么在函数体中只要修改过这个形参,之前调用这个函数时赋给对应形参的实参的值也会修改。它的机理就是,使用out 和ref 修饰的形参是引用类型(类似C语言里面的指针),而不是值类型,也就是说它们所存储的信息是地址,而不是值类型。
| ref | out |
---|
区别 | 要求变量必须在传递之前进行初始化(赋初值),但调用时可以对它什么也不做;而out 在调用之前,并不需要为这一形参的变量赋予初始值。 | 只能用来将值从方法中传出。不管外界是什么值,使用了out是要把参数清空的,然后函数体中必须对其赋值。也就是说,在调用之时的函数体内部必须对out修饰的变量赋值。 |
简单说就是ref有进有出(或无出),out无进有出。 例子:c#中的关键字out是什么意思?ref是什么意思?它们有什么区别? -
Image和RawImage的区别: Unity - UGUI :Image与RawImage -
可以通过自己写的Reset函数进行组件的快速配置 Unity 自带函数 Reset() 的使用 -
UI交互组件共有属性(可用于实现一些简单的动画):【Unity学习笔记】交互组件共有属性:Interactable、Transition、Navigation -
与场景中的物体进行交互,要给摄像机添加Physics Raycaster(在有EventSystem情况下),然后继承接口IPointerClickHandler ,实现方法OnPointerClick ,并在里面写点击到后的事件 -
不同状态下的切换,可以利用相互冲突的点作为触发条件,可以让状态的切换更加顺畅。
|