码迷,mamicode.com
首页 > 编程语言 > 详细

总结Unity 初学者容易犯的编译与运行时错误

时间:2014-11-30 17:03:36      阅读:8403      评论:0      收藏:0      [点我收藏+]

标签:unity   unity常见错误   unity常见问题   unity编译错误   

      最近在教授Unity 初级课程的时候,经常被学生问及一些非常简单的Unity 出错信息如何解决的问题。我就想这些问题是否可以总结一下,给大家一张易错清单我的工作量是否可以大量减轻呢? 对! 说做就做,以下是我总结的部分内容。


问题1:

       当脚本添加游戏对象过程中,弹出的出错窗口: “Can‘t add script....." ?
解答:
       原因是Unity 规定脚本的文件名称必须与类名相同,否则报错。请更改Unity脚本的名称或者类的名称。
 


问题2:
       在学生学习导航寻路过程中,在运行过程中遇到的运行时错误信息:   "SetDestination" can only be called on an active agent that has been placed on a NavMesh"?

解答:
        典型导航寻路错误,主要原因是你需要导航的游戏对象,放置的位置不对,要么y轴远离了“地面”(NavMesh),要么离开了烘培的"地面"。请检查与更改相关寻路主角的Y轴位置。



问题3:
       用户拿到的工程文件,发生打不开的错误(不报错)。 也就是Unity 无论怎样都打不开指定的Unity 项目?

解答:
      一般是因为Unity 对中文支持的不好,所以工程所在路径不能有中文。 请把你的工程文件的所在路径进行检查,把相关中文路径去除即可。



问题4:

       当用户导入*.unitypackage 文件的过程中显示错误信息:  "Error While importing package: Couldn‘t decompress package.Failed importing package ....."?。

解答:
       这个问题一般也是因为Unity 对中文支持的不好,所以需要导入的*.unitypackage 文件所在路径不能有中文。 请把你的“包”(或者一些*.unitypackage 插件)文件的所在路径进行检查,把相关中文路径去除即可。    


  

问题5:

      用户在运行游戏工程过程中,发现没有声音? 且计算机硬件没有问题? 在Unity 的Console 窗口中有如下信息大量显示: “ There are 2 audio listeners in the scene”  ?

解答:

       原因是你当前场景中存在2个以上的“Audio listeners”, 请只保留一个即可,多余的删除。 一般也都发生在学员引入Unity 自带的“第一人称/第三人称”角色的时候发生的现象。 你可以把主摄像机的Audio Listener 组件暂时禁用或者删除掉即可。



问题6:

       程序运行过程中最容易出现的一个运行时错误信息: “NullReferenceException: Object reference not set to an instance of an object” ?

解答:
       这是典型的“空引用错误”, 本质是原本需要实例化的游戏对象没有成功的加载,程序后面的指令已经在用上面没有实例化的对象所造成的! 。 具体问题还需要具体分析,看是否什么组件没有加载,或者一些 GetCompont() 与 Resource.Load() 等方法的路径名称是否正确等。



问题7:
       程序运行过程中出现的一个运行时错误信息:  “MissingReferenceException: The object of type ‘GameObject‘ has been destroyed”
解答:
       缺少引用异常!通常原因是由于指定的游戏对象已经销毁了,而其他代码还要访问(调用),造成的错误!。



问题8:
       程序运行过程中出现的一个运行时错误信息:“InvalidCastException: Cannot cast from source type to destination type”?
解答:
        无效的转换异常: 不能从源类型转换到目标类型。 需要学员仔细检查程序中强制转换是否合理? C# 的“装箱拆箱”是否正确等。



问题9:
       “UnassignedReferenceException: The variable goLineRedDiamend_Prefab of ‘ScenceManager‘ has not been assigned”?
解答:
        未分配引用异常。 通常是脚本中的public 类型字段,在游戏运行过程中,没有给予附加相对应的“预设”或者游戏对象所造成的。 即: 没有给脚本的公共字段添加参数造成的。


问题10: 
       学员在做关于Animation 帧动画时出现的错误:“AnimationEvent has no function name specified"?

解答:
        在Animation 中你定义了一个事件,而没有给事件添加对应的“事件方法”,导致出错!



 

        以上是我总结出的目前十个常见编译期与运行期错误,请大家多提宝贵意见,不断丰富这个文档使得初学者少走 弯路", 谢谢!


本文出自 “刘国柱的云中漫步” 博客,请务必保留此出处http://liuguozhu.blog.51cto.com/9142031/1584768

总结Unity 初学者容易犯的编译与运行时错误

标签:unity   unity常见错误   unity常见问题   unity编译错误   

原文地址:http://liuguozhu.blog.51cto.com/9142031/1584768

(0)
(6)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!