unity 部分知识小集合

首先允许我吐槽一下TrailRenderer的拖尾效果,有时会遇到一些莫名其妙的错误某些物体无法拖出线条,而另外一些有是好的,删掉重新建一个就神奇的变好了,不知为何求哪位知道的小伙伴告诉我。谢谢。
  一、C#脚本中将浮点类型规范到小数点后两位,常用的是:String.Format("{0:F}", number),
二、很多时候我们需要重置一些变量的值,我觉得数组是个不错的选择,因为访问数组元素的时间是恒定的,与数组的元素数量无关,并且数组的元素在内存中是连续排布的,大概意思是访问索引速度快。
三、ArrayList作为一个NB的数据类型,应用广泛,因为它比List更能包容一切数据类型(且全部视为Object),那么 问题 来了,来来回回的装箱与拆箱你能忍吗?骚年还是用List吧!
四、NGUI里面Label要求部分文字突出显示,这种效果在HTML中很好实现,可是在NGUI怎么弄呢,这里就用到NGUI内置标签语言代码:[代码对应的十六进制颜色代码]文字内容[-],直接写在字符串里面就OK,Label会自动把'文字内容'设置成对应的颜色,注意:NGUI的Label的Color属性不能设置为黑色,因为任何颜色和黑色叠加还是黑色。
五,听说可以控制视频播放速度,思路是控制视频里音频的播放速度.pitch,可以我还没研究,抱歉。因为我发现了一个插件:AVPro QuickTime功能真的好强大,可是只能支持按照了QuickTime的电脑,有点麻烦哦。
六、协成,开启一个线程:StartCoroutine(NextSpeed());
然后线程开启的是个方法NextSpeed
                                          IEnumerator NextSpeed()
                                            {
                                                  TweenPosition.Begion(Object , 0.5f , new Vector3());
                                                  yield return new WaitForSeconds(0.5f);//等待0.5秒后执行
                                             }
七、NGUI事件,UIEventListener.Get(GameObject).onClick=方法名;
以上一句话是定义GameObject的单击事件对应的方法,然后再脚本中新建方法:
                       void 方法名(GameObect  bo)
                       {
                           Debug.Log("onClick方法只写一个GameObject参数就行,对应其他的一些事件比如悬浮在定义时还有写一个Bool参数");
                       }
八、关于物体跟随鼠标移动,这里有一个函数ScreenToWorldPoint,例:clone.transform.position = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,                           Input.mousePosition.y, cube0.transform.position.z));  
如果你的纵向Z位置不想保存不变,可以坚持相机与目标点的距离然后和初始距离相比,加上或减去一个值,就可以动态改动的Z的值。
九、Invoke() 方法是  unity 3D 的一种委托机制

如: Invoke("SendMsg", 5);   它的意思是:5 秒之后调用 SendMsg() 方法;

使用 Invoke() 方法需要注意 3点:

          1 :它应该在 脚本的生命周期里的(Start、Update、OnGUI、FixedUpdate、LateUpdate)中被调用;

          2:Invoke(); 不能接受含有参数的方法,好霸气;

          3:在 Time.ScaleTime = 0; 时, Invoke() 无效,因为它不会被调用到

Invoke() 也支持重复调用:InvokeRepeating("SendMsg", 2 , 3); 

这个方法的意思是指:2 秒后调用 SendMsg() 方法,并且之后每隔 3 秒调用一次 SendMsg () 方法

还差一点就十全十美了。
十、Unity打包发布成Web后,加载页面会出现Untidy Loading

图片此时我们如果想去掉怎么办呢?在Unity的打包设置中我没有找到更改的地方,所有只能更改发布出来的.html文件,在<head>标签的最后添加一个<script>块,代码如下:

<script type="text/javascript">
         var params = {
             backgroundcolor: "A0A0A0",
             bordercolor: "000000",
             textcolor: "FFFFFF",
             logoimage: "UI/loadingLogo/MyLogo.png",     //需要更换的logo图标
             progressbarimage: "UI/loadingLogo/MyProgressBar.png",   //需要更换的进度条图片
             progressframeimage: "UI/loadingLogo/MyProgressFrame.png"  //需要更换的进度条背景图片
         };
         var u = UnityObject2({ params: params });
     </script>
然后再.html的同级别文件目录里面新建文件夹路径和文件,此处代码中的logoimage替换Untidy的Logo图标,progressbarimage表示进度条的前景图片,progressframeimage
表示进度条的背景图片。
最后保存,打开.html文件,就是自己替换好的加载图片了,加载的进度条图片也必须有,否则Logo无法替换成功。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值