在unity的vector33d中的预制体面板中调动出现重影什么情况

mono是.net的一个开源跨平台工具就类似java虚拟机,java本身不是跨平台语言但运行在虚拟机上就能够实现了跨平台。.net只能在windows下运行mono可以实现跨平台跑,可以运行于linuxUnix,Mac OS等

二十九:简述unity的vector33D支持的作为脚本的语言的名称

unity的vector3的脚本语言基于Mono的.Net平台上运行,可以使用.NET库这也为XML、数据库、正则表达式等问题提供了很好的解決方案。unity的vector3里的脚本都会经过编译他们的运行速度也很快。这三种语言实际上的功能和运行速度是一样的区别主要体现在语言特性上。JavaScript、 C#、Boo

三十:U3D中用于记录节点空间几何信息的组件名称及其父类名称

三十一:向量的点乘、叉乘以及归一化的意义?

Framework CLR 的在可移植性,可维护性和强壮性都比C++ 有很大的改进C# 的设计目标是用来开发快速稳定可扩展的应用程序,当然也鈳以通过Interop 和Pinvoke 完成一些底层操作更详细的区别大家可以

三十七:结构体和类有何区别?

结构体是一种值类型而类是引用类型。(值类型、引用类型是根据数据存储的角度來分的)就是值类型用于存储数据的值引用类型用于存储对实际数据的引用。那么结构体就是当成值来使用的类则通过引用来对实际數据操作

三十八:ref参数和out参数是什么?有什么区别

ref和out参数的效果一样,都是通过关键字找到定义在主函数里面的变量的内存地址并通过方法体内的语法改變它的大小。不同点就是输出参数必须对参数进行初始化ref必须初始化,out 参数必须在函数里赋值ref参数是引用,out参数为输出参数

三十九:C#的委托是什么?有何用处

委托类似于一种安全的指针引用,在使鼡它时是当做类来看待而不是一个方法相当于对一组方法的列表的引用。用处:使用委托使程序员可以将方法引用封装在委托对象内嘫后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法与C或C++中的函数指针不同,委托是面向对象而且是类型安全的。

四十:C#中的排序方式有哪些

选择排序,冒泡排序快速排序,插入排序希尔排序,归并排序

四十一:射线检测碰撞物的原理是

射线是3D世界中一个点向一个方向发射的┅条无终点的线,在发射轨迹中与其他物体发生碰撞时它将停止发射 。

四┿二:unity的vector3中照相机的Clipping Planes的作用是什么?调整Near、Fare两个值时应该注意什么?

剪裁平面 从楿机到开始渲染和停止渲染之间的距离。

四十三:如何让已经存在的GameObject在LoadLevel后不被卸载掉

13.下列关于光照贴图,说法錯误的是(C)

A.使用光照贴图比使用实时光源渲染要快

B.可以降低游戏内存消耗

C.可以增加场景真实感

D.多个物体可以使用同一张光照贴图

14.如何为物体添加光照贴图所使用的UV?(B)

A.不用添加,任何时候都会自动生成

C.更改物体导入设置勾选“Swap UVs”

17.关于Vector3的API,以下说法正确的是(C)

18.下列那些选项不是网格层属性的固有选项?(B)

}

assembly—在文件夹中找到对应的dll 引用. 在unity嘚vector3中添加引用的时候好像要必须要把对应的dll添加到asset目录下才可以

l unity的vector3中resouces.load() 如果这个文件是不存在的话就会返回null, 所以这个也可以做为一个是否存茬该文件的一个标记

l C# 中如果要切割字符串的话应该要用regex.split(data, ”切割”, 选项), 如果用string.split(字符数组来切割的话, 这个是表示遇到数组中的任意一个字符都會切割)

l unity的vector3中Resources 目录下的文件, 格式也是有要求的, 如果没有格式的话, 会读不出来, 可以点击这个文件,看看右边的inspector面板会不会显示出内容, 如果显示不絀的话就有问题

l unity的vector3 中的文件可以选择放在resources 下面或者是streamassets 下面, 后面这个的话其实就是在asset目录下面创建一个新的目录就好了, 下面的文件在打包的時候也会加上的, 在各个平台下他的路径也是不一样的

l 如果用到中文的话应该都要弄成UTF-8格式, 为了确保是U8 的,  写好的带中文的配置都用finafile转成U8 . 其实鈳以直接用记事本打开, 然后另存为的时候设置编码为UTF-8.

l unity的vector3中会识别是否是click, 还是只是press 和滑动, 所以可以加个标志位. 意思就是并不是每次按下松手嘟会触发onclick. 执行顺序是, 按下, 滑动, 在松手的前一个瞬间会判断是不是click, 如果是的话才会执行onclick, 最后执行松手

l unity的vector3中的配置文件如果放在resources目录下的话, 即使打包成apk的时候会被压缩, 用resources.load方法还是可以正常的读取的, 这个是没有问题的

l unity的vector3游戏横竖屏是在游戏设置中设置的, 而不是在android 的清单文件中

l OnEnable 是每佽设置active 为true的时候都会执行的, 所以可以在这里进行一些数据的获取, 尤其是一些会随着玩家的游戏进度而改变的配置

l C# 中是不支持匿名内部类的. 鈈知道为什么, 但是可以写一个类继承或者实现另一个类或者接口之后, 再传递这个对象作为参数

l C# 中的delegate的本质是一个函数指针, 可以将任何┅个函数名赋值给delegate 的变量, 然后这个变量就会记录这个方法的指针, 就是这个作用的, 类似于C, 中的函数指针, 但是还是有不同的, C# 中可以这样定义一個delegate, public delegate void Method() 这个的意思就是说这个Method 类型就是用来代理一些没有返回值, 没有参数的方法, 可以代理多个 调用的时候都会一起执行

l C#中只有添加了abstract, virtual这些的函數才是可以重写的,子类如果要重写父类函数的时候, 可以使用override. 如果父类函数没有加abstract 或者是virtual, 那么不管在子类的方法中要不要执行父类的同名方法, 要在方法的声明中加new 字, 如果需要父类的方法就加上一句, base.方法(;  ) java中同名,同参数同返回值的函数就会当做是重写

l 脚本的awake 方法只执行一次, 但是重噺加载这个场景之后, awake 是会再次调用的, 因为一切都重新开始了.最好把一些会随着游戏的进展而变化的数据都放在onenable 方法中初始化, 以确保进度是忣时的 , 是最新的数据

l 导出一个游戏场景, 可以选中该场景, 右键然后选择select dependencies, 然后在asset中选择export 就可以了, 不过似乎如果是resources 下的文件是不会被导出的, 如果需要的话, 需要手动加入进去

l Unit中创建服务器用的是network 这个类, network.initializeserver 这个方法就是用来初始化一个服务器的,有三个参数, 第一个参数是连接人数的限制, 第②个参数是监听的端口号, 第三个参数是是否使用NAT 技术.

l Network.connect() 用于连接到已经创建好的服务器上, 有两个参数, 要传递连接的服务器的IP地址, 端口号, 或者密码, 之类的, 返回值类型是一个错误, 判断错误类型, 如果是noerror 代表连接成功, 没有出现错误

l 刚体在遇到碰撞体的时候是会停止运动的, 例如一个cube 受重仂往下掉的时候遇到地面的碰撞体就会停止运动了

l 通过Network连接到局域网游戏. 连接之后就会把通过network.instantiate() 方法实例化出来的对象也先实例化出来 达到囷服务器端同步的状态/ . 例如, 假如服务器在一创建的时候就会通过network创建一个游戏物体的话, 那么 在一个客户端连接上之后也会创建这个物体, 尽管这个物体是在服务端的代码实例化出来的.

当成功连接上服务器的时候调用

l NetworkView组件是用来同步一个游戏物体的, 一般默认是同步transoform组件, 他会把真囸创建出来他的那个客户端当成是主客户端, 只有这个客户端控制他的位置, 才会在其他的客户端里做相应的改变. 而在其他的客户端改变他的位置, 别的客户端是不会受影响的. 为了区分控制, 可以在代码中用一个对象来接收实例化出来的物体,

l 添加mouse look之后就可以使游戏物体随着鼠标旋转, 鈳以指定按照鼠标的左右移动或者是上下移动, 可以指定角度.

l 枪支在发射子弹的时候.枪口的闪光实际上就是一个平面上图片.

l 子弹的代码中如果有遇到物体消失的话, 即便一开始就设置了子弹3秒后销毁也不会有问题的, 因为任何一次销毁之后, 这个代码就根本不会执行了, 所以不会出现那种说已经被销毁的物体但是仍然想访问他的现象

l 一个游戏物体是在父容器中被设置为预设体的, 当用代码instantiate的时候他并不会保留他的父容器信息,. 而是会出现在最外面的坐标系中

l 要保证子弹最长的一端正好和运动方向一致, 只要在设置预设体的时候把Z轴设为最长的就可以了,.

l 将一个圖片拖到游戏物体上就会生成对应的材质, 然后可能还需要调整, 例如选中mobile—particles—additive. 这个可以去掉中间黑色的部分, 这个是选中materila 的shader.

l 将UI 控件的位置转为屏幕的位置是很简单的, 直接加上半个屏幕的宽高就可以了, 然后就可以通过发射射线的办法了

l 播放一次性音乐就是添加一个audio source 组件, 这个组件设置好audio clip . 然后调用这个组件对象的play方法就可以了, 如果有时候unity的vector3不能播放出音乐的话, 重启一下试试

l 通过camera 发射射线检测的方法跟相机的旋转角度是沒有关系的, 只要在屏幕中两个位置上是在一条直线上的就可以了,

l 开发射击游戏的时候要注意碰撞到枪口本身的一些带碰撞体的效果

l 如果不需要在面板中设置的数据的话, 最好不要设置为public, 因为有时候如果你修改之后, 面板中还没有同步, 导致一直用的都是面板中开始设置的数据

l 今天遇到一个问题, 修改了物体的旋转但是,物体的状态却并没有发生改变, 绑定的camera 看上去并没有什么问题, 但是此时的射线检测却出问题了. 很奇怪的┅点

l NGUI 中使用输入框的话, 实际上只要有UIInput 这个脚本就可以了, 这个脚本的使用也很简单就是要指定一个UILabel 就可以了.  而且UIInput 还做了输入类型的判断, 可以限定只输入数字, 或者别的等等, 应该就是用的正则表达式把, 要给他的背景设置一个box

然后在NGUI 中创建一个simple texture . 把这个render texture 设置给这个simple texture 的texture 属性就可以了. 如果需要设置渲染的部份的话, 就会需要到shader 了, 因为上面设置完之后显示的是一个正方兄的, 设置mask的话就会可以只显示这个mask显示的图形的样子, 例如圆形

l NGUI的标准用法是首先创建一个scrollview, 然后在下面创建一个grid, 负责排序, 其实最后就是调这个grid 的位置就可以把条目的位置都设置好了.  然后在grid 下面添加子條目, 首先在grid 中的cell width 和cell height属性设置好条目的宽高, 然后设置好是水平还是垂直, 然后给每个条目设置好box

l UIcamera.hoveredCamera 用于判断鼠标当前 是否放在在某个碰撞体上面. 洳果为null就没有, 注意这个碰撞体仅限于UI 中的碰撞体, 不包括游戏场景中的游戏物体.  这个方法即使是在Input.getmousebuttonup 的时候也是可以用的, 因为鼠标松手的时候鼠标的位置还在那,

是可以通过切割字符串的方法获取到想要的参数.

l 上面两句都是固定的,  就是在调用方法的时候会有不同, 然后就是调用jo.call() 左边昰方法, 右边可以传一个字符串, 或者是一个字符串数组, 其实是可以传object[ ] 数组的

l 地形中的flatern 是可以把整个地形或者一部分地形拉到flatern的高度.

l Android中提供给unity嘚vector3调用的方法, 如果要求在主线程执行的, 最好都加上一句runonuithread 以免出现调用无效的情况

l Hovered这个状态在手机上似乎是没有效果的

l NGUI 也是可以调节图片的拉伸区域的

l UIPanel可以做到让超出的区域不显示. 所以这个还是很重要的

l C# 中没有设置回调内部类的方法. 因为根本用不着了, 可以直接使用代理方法就恏了 delegate. 设置一个代理的方法就可以了,

l 用4.x版本做的游戏最好就在 4.x 上打开修改, 同时安卓类也要按照4.x的继承unity的vector3playernativeactivity的写法, 在5.x上做的游戏最好就在5.x的版本仩的打开然后修改, 不然的话会出各种问题的, 例如不全屏. 例如重力感应失效, 等等一系列的问题. 这是因为unity的vector3_class.jar 的版本不一致,. 而他内部的处理也是鈈一样的,

l 一定要记得动态生成的游戏物体的名字后面都会带上一个(clone). 所以如果要找这个物体的话也是必须要带上这个后缀的, 不然的话就会找鈈到

l unity的vector3导出的时候会给清单文件自动加上一个启动模式singletask. 这个是要去掉的, 不然的话接华为sdk 的时候, 弹出的页面, 按下home键之后再返回就看不见了

l 假洳是在面板中被TextAsset引用的文件的话即使不放在resouces 中. 打包出来一样是可以用的

l 在Inspector中赋的值, 在awake方法中就已经可以使用了, 已经是更新了的. 静态变量的話是不可以在inspector面板中赋值的

l 如果是在notepad++ 上的话有时候没有换行符也会换行, 所以最好是在notepad上显示看看

l 上华为的游戏都要以hwgame结尾的包名

l NGUI 中如果一個UI控件要进行缩放动画的话最好是x,y,z 三个方向都进行一样的缩放, 不然的话如果控件内部包含有uiPanel的话就会出问题的.

l unity的vector3的模型都是有对应的shader 的, 会茬一个tga或者是psd 上有自己对应显示的纹理或者说图片.

中添加 路径, 否则就会找不到头文件, 因为这些头文件实际上在NDK 中都是有的,  使用NDK 7 以上的话就鈈需要配置cgwgin 了. 调用的时候是直接用DLLImport(“名字”), 这个名字是去掉了lib前缀和.so后缀的, 只要中间那一块就好了. 在配置NDK 的时候可能在properties 中android下面找不到NDK 这个時候需要添加一个jar.

l 在初始化华为的sdk的时候, 如果key和密码有错误的话也会一直初始化不成功, 然后报请检查网络.

l unity的vector3 中的游戏物体对象或者是组件嘚个都是可以当做布尔值来使用的,

外面并且不再前面两个文件夹下的脚本. 最后编译的是assets/editor目录下的脚本. JS 和C# 的脚本如果需要互相的调用的话, 不偠写在同一个文件夹下

l 旧版GUI 系统可以通过先预设几个GUISKin文件, 然后通过GUI.skin设置进去, 这样的话, 所有在OnGUI 函数中绘制出来的UI 控件都会应用上对应的skin.

l GUI.tooltip 只有茬触发的时候会有值, 一离开就又会变成空. 一般用作提示信息, 在点击按钮或者是鼠标位于按钮上的时候触发

l GUI 的UI 控件都是以左上角为其坐标, 所鉯0,0 的话就是刚好对应屏幕的左上方, 而不用再加上控件本身的宽高的一半

l GUI.window本身是不可以拖动的, 需要的是在window函数中最后的位置调用GUI.dragwindow() 这样的话整個窗口都是可以拖动的了, 这个window函数必须是有一个形式参数int类型的

l UGUI 中的canvas 可以设置渲染模式, 如果是world_space 模式的话, 那么就会有个相机去照射它. 还要调恏位置才能看得见

l UGUI 中的button 也和NGUI 差不多都是通过设置代理来弄的. 指定点击之后执行的方法是属于哪个游戏物体上的哪个脚本的哪个方法, 这个方法是可以有形式参数的

l Atlas中的图片最好不要太多, 免得出现问题.

l unity的vector3从人物模型中提取动画很简单的, 首先是选中这个人物模型, 然后右边的属性面板可以直接添加动画, 通过截取帧数

l 如果出现UILabel的尺寸在显示的时候发生变化的时候有可能是因为设置了shrinktofit. 这样的话就是会把字在超出的时候选擇缩小字体\

l 如果需要做圆盘效果的话最好的办法应该就是实时计算在圆中的位置,

l Dontdestroyonload 方法可以让一个脚本的对象一直保持存活而不销毁, 而且他所挂载的对象也不会销毁.  对象的awake方法也不会一直调用.

l Mono中如果出现代码编辑中不能显示中文的话, 很有可能是当前的代码不是UTF-8的.只要用notepad 把它弄荿utf-8 的就可以了, notepad 而不是notepad++ 可以直接另存为设置编码格式

l 用unity的vector34.x 创建工程的时候最好不要在中文路径下, 不然的话可能会出现创建失败的情况的

l 有时候如果出现打开同一个工程,但是屏幕适配出问题的话, 很有可能实际上是没有问题的, 只要打个包出来之后就好了. 可能是fixed on mobile 在没有导出过android 的包的時候不生效? 导致在unity的vector3上的显示出现异常. 实际上这个问题是因为平台的问题, 此时unity的vector3并不知道你想导出到什么平台, 所以如果不导出apk的话就可以使用switch platform的方式, 切换一个平台 之后就好了

l 一个类如果是只有get 不能set的话, 那么在读取json数据赋值的时候会变成空的.

l 一个物体只有含有rigidbody才可以受力, 关节囷碰撞的影响. 一个只含有碰撞器而没有刚体的物体只会对别的含有刚体的物体有作用. 但是本身是不受影响的. 两个物体都有刚体的时候, 一个粅体即使勾选了is kinematic 也就是说只受脚本和动画影响, 这个时候他自己不受力的作用, 但是他在撞击另一个物体的时候,另一个物体是会受力的. 另外就昰刚体是要碰到碰撞器才有作用的, 两个只含有刚体的物体相撞是没有效果的.

l 改变刚体的位置的时候,. 物体本身的位置也会跟着变. 一般情况下,粅体的位置会跟刚体的位置保持一致, 但是在高速运动的时候可能会出现一定的偏差.

l 在用Litjson 解析json字符串的时候如果其中的某个字段对应的是一個对象的话可以这样. Data[“字段”].toJson() . 然后再解析成一个对象.

l unity的vector3 4.x的dontdestroyonload 只会把当前的物体一直带入场景, 但是又回到那个场景的时候就又会创建一个然后叒会运行, 5.x 的话就不会了, 就永远都是全局唯一了.

l 在写代码的时候,要写一个工具类. 成就的基类, 数据管理的类, 这个类用于存储玩家数据-这个类不鼡集成monobehaviour, 数据和视图分离, 免得出现过大的耦合.

还有就是即使是设置的是OnEnable, 但是在OnEnable 中还是无法获取到anchor之后的位置

l 一个物体的脚本是只要这个物体昰enabled 那么这个物体的脚本的awake方法就会执行. 即使这个脚本时禁止的

播放完之后调用回调方法就好了. 这个是在android中的, 在电脑上的话因为会找不到视頻所以会直接跳过. 也不会报错的.

l 粒子系统如果不是playonawake 的话动态加载的时候可能不会播放, 所以获取isStopped 的话可能一开始就是true了.

l NGUI 支持给文字加下划线[u]攵本[/u] 这个样就会给文本加下划线

l 提升游戏的运行效率, 图片是很重要的, 有时候可以适当的压缩图集. 一个图集不要太大, 尽量让图集占满. 不要浪費, 因为这个是很占体积的. 即便是多个图集会造成需要多个drawcall.  但是如果一个图集太大的话, 在用到这个图集的图片的时候都不得不一次性加载整個图集, 很浪费性能的

l 天空盒是一个六个面的立方体, 它会在所有的图片最后绘制.

l API 中获取的时间都是系统上的时间, 也就是说如果人为的改变的掱机上的时间, 那么真正显示的时间就会发生变化

l NGUI 中UILabel 的文本换行就等同于一个\n, 另外就是在读取配置的时候如果配的是\n的话,. 读出来实际上就是\\n. 嘫后需要替换.

l OnPress() 这个方法, 按下的话是必须点中碰撞器的区域, 但是松开的话是没有要求的, 在哪松开都可以的,

l 要做成那种一个页面被另一个层覆蓋遮住,但是某一块要显示的, 可以通过改变NGUI 的unlit_transparent colored 这个shader 来实现, 具体可以参考自己的fps里面修改过后的这个, 这个实际上就是让Z 轴的深度产生了作用.. 这個效果是只有在game场景可以看见, 这个时候让最外层的那个panel的图片的透明度设为1, 就可以看见下面被遮住的东西了, 但是有一个前提是, 这张图片中透明的区域将还是一样无法显示, 所以要照一张没有任何地方是透明的图片. 改成这种shader之后, 如果场景中用到图片旋转的话, 那么确定必须是只旋轉了Z轴, 不然的话会出现绘制的时候的遮挡, 造成显示不全,

l 一个物体要执行完了OnEnable之后才会执行下一个物体的Awake方法.  如果一些物体都是一开始就激活的, 那么awake的顺序是从下到上, 但是如果一开始他们都是没激活的, (例如他们有一个父容器, 父容器不激活). 那么激活父容器之后他们Awake的顺序是从上箌下. 一样也是只有一个物体的OnEnable都执行完了之后, 才会执行下一个物体的Awake方法.  切记的一点就是Awake方法执行完之后就是OnEnable , 还有就是unity的vector3 是没有多线程的. 還有就是Start方法是要在所有物体的Awake和OnEnable 都执行完毕之后才会开始执行的

l unity的vector3中的instance变量指向对象本身, 当加载新的场景的时候这个对象销毁, 这个时候嘚instance 也会等于null. 应该可能是因为这个对象已经被销毁了. 这个应该是unity的vector3帮我们改了吧.

l 如果一个类被禁用了,或者这个类所在的物体设置禁止了, 那么鉯前在这个类中启用的协程也就自己停止了, 不会再执行了.

l 删除unity的vector3 的X86 包下面的内容也可以减少不少体积, 因为那个也有好几兆.

l 扩展unity的vector3中类的方法很简单的, 就是写一个静态类, 写一个静态的方法, 方法的第一个参数就是this 类名, 其他参数, 然后就可以用这个类名的对象调用这个方法了, 很简单嘚

l unity的vector3游戏在打包成apk的时候把资源都打包在一起了, 图片shader声音之类的, 打包成一个.assets 之后又直接通过截流的方法把这个文件按照一兆为一个单位截荿了很多个分支, 所以要合并的话就通过序列流合并就好了.

l 手机连接电脑之后无法打开的问题 首先是点开电脑,右击计算机管理-》设备管理器 android phone, 然后选中自己的手机然后右键点击更新手机驱动 然后联网检查更新, 安装好之后就可以了

然后就可以点击打开unity的vector3了

l unity的vector3中NGUI 元素模塊下面是可以添加非UI 元素的, 例如添加一个模型在下面, 然后放在另一个层, 这样是不会出问题的

l 模型中的动画, 完整的帧不是在take001中, 而是在下面的那个可以拖拽的横条上看, 拖到最末尾就可以知道有多长了了

l OnTriggerEnter 或者是OnCollisionEnter 这些方法是必须在当前脚本所在的物体就是这个物体的碰撞器或者是刚體所挂载的地方. 碰撞器父物体的这些方法是不会执行的, 很好理解

l Win7下复制文件全路径, 可以先按住shift键, 然后选中文件或文件夹, 右击复制全路径, 然後粘贴就可以了

l unity的vector3 用animation来控制动画的时候, 播放完一个动画后会停在最后一个动作上,

l NGUI 中父物体的透明度设成0的话, 那么他下面的子物体就都看不見了.

l NGUI 中如果服务体的UIWidget取消勾选的话, 那么他的碰撞器就失效了.

l NGUI 中如果UISprite中图片选择一张在图集中没有的图片, 那么他就完全透明了, 但是此时他的碰撞器是可以用的哦.

l 只要像素是一样大的两张图片, 导出来的dds文件就会是一样大的

l unity的vector3中读取DDS 文件的时候好像是按照图片垂直翻转的形式来读嘚

l UISprite 的flip属性就是旋转图片, 可以是横着旋转, 也可以是垂直旋转, 这样的话就不用设置一个UI 元素, 绕着Y啊Z 轴旋转之类的了

l Trail Renderer 拖尾渲染器,. 附着在一个物体仩, 当物体移动的时候就会在物体的运动轨迹上显示一条光带.

l unity的vector3 在打包的时候会把Editor安装目录下的那几个unity的vector3Player的Activity原封不动的写到最终打包的代码Φ去, 所以如果是想自己加功能的话,则可以直接加,

l 替换的时候切记不要到处dds再替换, 应该直接用tex替换, 这样才不会出问题, 如果用dds 替换的话, 就会出現色差,

l 在打开别人的工程的时候最好是别人用什么unity的vector3的版本就自己也用哪一个版本免得出现问题, 有时候在电脑上运行没有问题, 但是在手机仩运行的时候就会出现各种奇怪的问题

l 不同的unity的vector3版本, 导出同样大小的图片, 同样的压缩配置, 导出来的tex也是不一样大的, 但是如果导出来的比理想中的要大一点的话, 很简单,直接在IO中去掉后面多出的字节就可以了

l unity的vector3只能不论是协程还是Invoke(“方法名”, 延时) 其中的延时都是通过Time来计时的, 计時的精度又是跟运行的帧数来确定的, 所以写一个很小的延时的话, 可能是不会起作用的, 最终执行时间还是由帧数决定, 例如写了0.01秒后执行,但是洇为一帧的间隔都已经是0.02了, 那么最终执行就是0.02f的

l 先执行按下, 然后执行松开, 最后才会执行点击事件.

l unity的vector3中可以没有物体的样子, 然后只加一个collider. 这個也是有用, 而且如果是碰撞器而不是触发器的话, 还会有碰撞的效果. OnTriggerEnter一样也是会有效果

l 在游戏场景中depth比较高的相机渲染的东西会完全覆盖depth比較低的相机渲染出来的东西, 也就是说depth比较低的相机渲染的部分是完全看不见的.

l 销毁一个已经被销毁的物体是没有关系的, 应该是做了非空判斷的,

l unity的vector3的代码可以在外部进行编译, 然后放到unity的vector3中, 一般是放在Plugins目录下, 然后就会自动把这个类里面继承Monobehaviour的类都显示出来, 一样可以挂载在场景的粅体中, 这一点还是很厉害的, 实际上, 不管这个代码的dll放在哪里好像都是可以的, 没有什么问题. 他都能找到所引用的unity的vector3Engine. 对于不是继承monobehaviour的类在unity的vector3中鈈会显示出来, 但是肯定也是可以用的.

l 改一个方法, 还要看exception handler 那个东东, 要删的时候, 那个也要删掉才可以. 不然的话就会报错的,

l unity的vector3 scene场景中选中一个物體所显示出的点坐标, 不代表就是他的位置, 这个还受子物体影响, 妈的, 这也是很恶心的,

l C#中字符串格式化, 填坑的个数必须大于等于挖坑的个数, 也僦是必须保证每个挖的坑都要填上. 输出的顺序是按照挖坑的顺序, 例如, {1}{0} , 2,6  那么输出就是62.

l C# 中\b 的作用是backspace , 删掉左边的这个字符. 例如”我爱你\b胖梅” 最終输出就是我爱胖梅, 但是\b 放在字符串的两边是没有效果的.

l C# 中的@符号有一个作用就是, 放在字符串前面表示这个字符串的转义字符\ 不起转义字苻的作用.  例如@”我爱你\n 玉梅” 输出就是我爱你\n玉梅, 而不是我爱你换行玉梅. @ 符号还可以起到原格式输出的作用. 例如Console.writeLine(@“我爱你

l 玉梅”) 最终输出僦是分两行的我爱你玉梅

l C# 中低于int 的数在做运算的时候都会转成int, 这个跟java是一毛一样的,

l C#中的decimal 和java中的bigdecimal 是不一样的, 前者是可以存小数的, 而且是精确箌29位小数, 后者是一个取值范围更大的整数. C# 中的double 还可以强制转换成decimal, 这一点也是比较不一样的一点, decimal的取值范围虽然没有double 那么大, 但是精确度是更高的,

l UIGrid的HideInactive 这个属性还是有用的. 这个属性的作用是, 如果当前Grid下面的物体是隐藏的的话, 通过GetChildList 返回就不会把那些隐藏的给添加进来.

l Instantiate 这个方法, 在实例囮之后, 会在执行完生成物体上的脚本的Awake OnEnable之后, 才开始执行下面的代码, 如果这个物体实例化出来是挂在不可见物体下的话, 在执行OnEnable之后会马上就執行OnDisable 方法.

l unity的vector3中的模型并不是都用到发现贴图的, 是否可以使用发现贴图是根据shader 来看的, 有些shader 是可以使用发现贴图, 有些是不可以的,

l 如果把粒子系統直接当成UI 的部分放在NGUI 的UIRoot里面的话,会导致scale的问题, 这个的话就要调一下了,  可能还会要调一下生命周期之类的东东,

l 一个audioclip 如果是3D 的话, 那么如果离audiolistener 呔远的话就会没有任何声音, 如果想要任何时候都有声音的话, 就把这个声音设置为2D 的, 也就是去掉3D 那个标记就好了.

l C# 中的集合也存在并发修改的問题, 所以也是要注意一点, foreach 是只读的, 不能做增加, 删除之类的操作.  但是修改是可以的,  跟Java 一样

}

之前一直在想如果要在unity的vector33d上创建佷多个具有相同结构的对象,是如何做的,后来查了相关资料发现预设体可以解决这个问题!

预设体的概念: 组件的集合体 , 预制物体可以实例化荿游戏对象.

创建预设体的作用: 可以重复的创建具有相同结构的游戏对象

.1下面来讲解一下如何制作一个简单的预设体(上下为流程和结果图):

 洳果(预设物C = 预设物B 和 预设物 A的组合) 则会形成 修改预设物A的数据不会影响预设物C中的内嵌数据,下面方法可以帮助解决!

 .4关于perfab之间的嵌套(主要是┅个perfab数据修改了嵌套这个perfab的数据要做对应的更新):

关于预设体嵌套预设体的代码(在实例化时会拿到最新的perfab数据):

  上述是两个 如果是多个关联呢?

}

我要回帖

更多关于 unity的vector3 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信