没有团结一致的第三人称角色。

时间:2017-10-02 17:48:46

标签: c# unity3d

我已将Unity Standard资源导入Unity 5.6.0,我将第三人称角色拖动到场景中,它保持动画但不会在AWSD或左/右键上移动。 这只发生在一个项目中,它适用于所有其他项目。我从网上搜索过,但是没有解决方案似乎有效。

3 个答案:

答案 0 :(得分:1)

尝试使用统一的第三人称控制器重新导入资产,导入可能在某些地方出错或尝试在构建设置下构建游戏以查看是否有帮助

答案 1 :(得分:0)

您的角色控制器由多个部分组成(动画文件/模型/脚本以及可能的其他文件)。如何将第三人称角色加载到场景中可能存在问题。我会尝试在项目中创建第3人角色的预制件,然后将其导出为预制件。可能会遗漏附加到对象的脚本。预制件有助于防止您留下构成角色/物体的任何碎片。也有助于水平建设。

如果有帮助,请查看此处:https://docs.unity3d.com/Manual/Prefabs.html

另一种可能的解释是如何在Unity Project中设置输入设置。尝试比较工作实例的两个输入和非工作实例。

请尝试在此处查看更详细的方法:https://docs.unity3d.com/Manual/class-InputManager.html

答案 2 :(得分:0)

我也遇到了这个问题,最后是因为我将我的项目设置为在“构建设置”中的IOS上运行。我 切换平台 到macOS,它可以正常工作。

为什么?看来Unity的虚拟控制器期望输入来自移动设备(现在似乎很明显),而CrossPlatformInputManager并不期望WSAD。

IOS模式下的一种解决方法是编辑ThirdPersonCharacter / Scripts / ThirdPersonUserControl.cs并将def main(): array = [1,2,3,4,5] array_len = len(array) new_val = 9 print(array) temp = array[0] array[0] = new_val for i in range(0,array_len-1): temp1 = array[i+1] array[i+1] = temp temp = temp1 print(array) main() 替换为ThirdPersonUserControl.cs

例如

Input

我在发掘脚本中的Update函数时发现了这个问题,但是 // read inputs //float h = CrossPlatformInputManager.GetAxis("Horizontal"); //float v = CrossPlatformInputManager.GetAxis("Vertical"); // read inputs from default input float h = Input.GetAxis("Horizontal"); float v = Input.GetAxis("Vertical"); 总是返回0。

可能值得在运行时进行检查。