分类 问题 下的文章

Unity prefab实例属性不随预制源改变的问题

现象

今天遇到一个修改了prefab源的属性后,prefab实例属性不随着改变的问题。

操作步骤:

  1. 在Unity Editor中创建prefab对象Player;
  2. 托一个Player的实例p1出来;
  3. 修改Player预制对象的z属性;
  4. p1的z属性未跟着变;

在Unity组件手册中这么说的:

Inheritance 继承

Inheritance means that whenever the source Prefab changes, those changes are applied to all linked GameObjects. For example, if you add a new script to a Prefab, all of the linked GameObjects will instantly contain the script as well. However, it is possible to change the properties of a single instance while keeping the link intact. Simply change any property of a prefab instance, and watch as the variable name becomes bold. The variable is now overridden. All overridden properties will not be affected by changes in the source Prefab.

继承是指当预置源发生变化,这些变化将应用于所有已链接的游戏对象。例如,如果添加一个新的脚本到预置,所有已链接的游戏对象都将立刻包含该脚本。但是,它有可能改变一个单独实例的属性,同时保持链接。改变任何一个预置实例的属性,可以看到变量名称变为粗体,现在该变量可以被重写,所有的重写属性不会影响预置源的变化。

那么,p1.z应该随着Player.z改变才对。

解决

- 阅读剩余部分 -

解决在VMware中Unity3D鼠标键盘响应异常问题

在VMware中装了Unity,写了个Demo,用到了First Person Controller。正常效果应该是第一人称视角,方向键控制行走,鼠标控制视角。

但运行后可以行走,视角无法移动。在我另一电脑(物理机)上没问题。

找到控制视角的脚本MouseLook.cs,里面

else if (axes == RotationAxes.MouseX)
{
    print(Input.GetAxis("Mouse X"));
    transform.Rotate(0, Input.GetAxis("Mouse X") * sensitivityX, 0);
}

打印结果:0

鼠标位移获取始终为0,怀疑是因为虚拟机里对鼠标的搜索和物理机不同。
找到VMware设置鼠标捕获方式,如下图:

- 阅读剩余部分 -

Flex mxmlc命令行编译错误: Java heap space解决方法

用Flex mxmlc命令行编译ActionScript工程时,报如下异常:

错误: Java heap space

原因是JVM heap内存空间不足,得改一下JVM参数

mxmlc命令行编译时JVM参数设置在 sdk/bin/jvm.config中,找到下面这行:

# Arguments to VM
java.args=-Xmx384m -Dsun.io.useCanonCaches=false

-Xmx384m表示JVM在编译时可用的最大内存数,把值改大一点,我这里改成-Xmx512m问题解决

Flash Loader加载完成不发送COMPLETE和ERROR事件的问题分析

Flash进行资源加载时常会“停住”,表现为加载进度卡在某个地方。跟踪发现Loader的progress为100%,但未发送Event.COMPLETE或IOErrorEvent.IO_ERROR等事件。

目前项目加载底层的队列依赖于Loader(URLLoader)的COMPLETE和ERROR事件,如果这两个事件不发送将导整套加载机制崩溃 - -,后续跟踪发现的确会如此。

问题展示

- 阅读剩余部分 -