问题
- 当在学习太空射击教程时,遇到了几个问题。 这里列举了一些并提供了解决方案:
Issue 1
- 适用旋转脚本的小星星不旋转
Issue 2
- 边界工作不正常。
Issue 3
- 为了发射子弹,要写Input.GetButton(“Fire1”)。
Issue 4
- 我按照教程做了太空船,背景和灯光。 我按照要求做了移动太空船的脚本,并测试了这个脚本。 太空船可以移动,但在移动一定距离后,它返回到其起始位置,并且不能移动。
Issue 5
- UnassignedReferenceException:游戏控制器的变量scoreText未被分配。 需要在检视面板中分配GameController脚本的scoreText变量。
Issue 6
- 游戏对象从场景中删除了,但并没有从层级视图中删除。
Issue 7
- 在构建Web播放器时,“内容已停止,因为检测到一个致命内容错误”。
Issue 8
- 每当我进入播放模式时,Unity就卡死了。
原因
Issue 1
- 没有考虑到Unity在脚本中是时区分大小写的,写Unity API函数时首字母字母没有大些或者输入有误,或者忘了分号等(例如,Start函数的首字母写成了’s'而不是大写字母'S', 或写onTriggerExit首字母'o'没大写)
Issue 2
- 边界框不够高; 子弹的起始位置没在框内。
Issue 3
- 不知道“Fire1”按键在哪或者是哪个按键。
Issue 4
- 您忘记更改边界值了。
Issue 5
- 您使用的是旧版组件(如GUIText)。
Issue 6
- 没用Destroy删除对象,或者collider添加错误(collider位于子对象而不是父对象)
Issue 7
- 在项目设置的图形部分中,只有一个着色器(漫反射),同时还需要具有“UI/Default”和“UI/Default Fon”着色器。
Issue 8
- 出现死循环。
解决方案
Issue 1
- 修正大小写的问题或拼写错误。 (例如,用大写'S'写Start函数,使用大写'O'写OnTriggerExit)
Issue 2
- 在需要缩放的方向(例如“Y”方向)缩放框以纠正错误。
Issue 3
- “Fire1”是Unity中的预设配置,用于引用发射的按钮。 换句话说,默认情况下,Unity已经将此字符串映射到某些按键上。 请到Edit->Project Settings ->Input中查看输入有关的预设配置。
Issue 4
- 在检视面板中重置边界。
Issue 5
- 将属性声明从GUIText scoreText更改为Text scoreText。 在Start函数中添加一行代码以引用此文本元素:scoreText = GetComponent <Text>()。 如果稍后得到一个错误,提示没有为文本设置对象,那么就删除Start函数中的最后添加的这一行。
Issue 6
- 将collider从子对象移动到父对象。
Issue 7
- 点选到Edit -> Project Settings -> Graphics,手动添加“UI/Default”和“UI/Default Font”着色器或单击齿轮图标并“reset”同样可以添加这些着色器。
Issue 8
- 查找While(true)循环,或任何其他可以无限迭代的循环,并修复它。
更多信息
请参阅以下链接:
http://docs.unity3d.com/Manual/ConventionalGameInput.html
http://docs.unity3d.com/Manual/class-InputManager.html
http://docs.unity3d.com/ScriptReference/Input.html
http://stackoverflow.com/questions/27912745/unity-webplayer-crashes-with-ui-text-new-canvas-text
本文适用于Unity 5.x版本