问题标签 [unity3d-5]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
4675 浏览

unity3d - 如何防止 Ridigbody 穿过墙壁?

我有一艘船,那是Rigidbody. 船上有一个MeshCollider。这个对撞机被设置为凸的。

我已经有了以编程方式创建的基础Mesh。那个网格上有一个MeshCollider。这个对撞机没有设置为凸的。

大多数情况下,这是有效的。我不会从地板上摔下来。大约 40% 的时间我可以开车穿过墙壁。

为了解决这个问题,我为每个墙部分添加了一个GameObject标记为静态的子项。这GameObject有一个BoxCollider。我将对撞机的大小设置为比墙的截面大 0.1。这意味着对撞机重叠,并且不应该有可以掉下来的间隙。

正如你在下图中看到的那样,我仍然可以开车穿过墙壁。

我应该怎么做才能不能开车穿过墙壁?

在此处输入图像描述

我试过了:

  • 也将 a 添加Rigidbody到地面,标记为运动学。为此,我将MeshColliderall 一起删除并使用了 all BoxColliders。我不得不使用所有BoxCollider的 s,因为你可以有一个凸刚体。这并没有解决问题

  • 我从播放器中删除MeshCollider并使用单个BoxCollider. 此时MeshCollider场景中不再有任何 s。这并没有解决问题

  • 两者Rigidbody都设置为连续碰撞检测。

我想知道 UNity3d 物理系统是否可以正常工作:/

0 投票
1 回答
810 浏览

unity3d - UNet播放器控制器问题

我有一个可以在 UNET 上工作的播放器控制器。我一定不明白,因为任何远程玩家加入游戏都无法控制他们的角色。

托管本地玩家可以很好地控制他/她的角色。

基本上我认为这是可行的方式是在Update本地播放器中可以按键。这些按键Command向设置同步布尔值的服务器发出 s。

FixedUpdate服务器中,根据设置的布尔值移动刚体。在播放器对象上,我有一个 NetworkTransform,因此服务器所做的任何移动都应发送回客户端。

0 投票
2 回答
1663 浏览

unity3d - 手动打开可序列化对象的自定义检查器

我有一个包含节点的窗口编辑器。选择其中一个节点时,我想打开自定义检查器。节点类是一个自定义的可序列化类。这可能吗?。

似乎可以通过 Editor.CreateEditor 方法手动创建自定义检查器,但看不到如何让它像统一检查器窗口中的普通检查器一样停靠。

我想实现与我们在场景视图中选择一个游戏对象时相同的行为,该游戏对象立即在统一检查器中显示对象(组件等)的属性。

干杯

0 投票
1 回答
2007 浏览

unity3d - Unity 地形拼接间隙

所以,我正在尝试使用单纯形噪声创建一个简单的动态无尽地形。到目前为止,我的噪音工作得很好——但是我遇到了地形边缘不连续的问题。起初我认为这是因为我没有在 Terrain 对象上调用 SetNeighbors,但添加它似乎并没有产生任何改进。

这个问题似乎是由每个地形位置之间的高度差异引起的 - 但是使这些设置相同会影响地形质量(在某些情况下会降低地形的锯齿状)并且通常看起来不优雅。我一直在浏览统一文档,试图找到解决这个问题的方法,但还没有找到任何东西。

有什么我想念的吗?还是我唯一的选择是调整一侧的高度以匹配另一侧?

感谢阅读,一如既往的感谢。

地形图供参考

0 投票
1 回答
181 浏览

unity3d - GameObject.transform.position 为空

我有一个完整的项目正在运行和工作,直到昨天。我只在场景中添加了一个对象,然后将其删除并重新保存了场景。我没有更改我的脚本。

现在,我不断收到这条消息:

NullReferenceException:对象引用未设置为对象 StartScript.OnMouseUp () 的实例(在 Assets/StartScript.cs:14) UnityEngine.SendMouseEvents:DoSendMouseEvents(Int32)

我在这行脚本中所做的就是找到一个游戏对象并设置它的 transform.poition= new Vector3(0,0,0); 我不断收到一个错误,即对象的变换为空,但该对象仍然是游戏的一部分。我从来没有碰过它!

你知道如何解决这个问题吗?我正在开发 Unity3D 版本 5。

0 投票
1 回答
65 浏览

c# - 用于治疗性视频游戏的 Unity 3D 中的关闭机制

我正在开发一个 Unity 3D 治疗视频游戏,患者每天只能玩 2 小时。达到两个小时标记后,直到整整 24 小时后才能玩游戏。

使用 Unity3D 的任何内置功能在 C# 中解决此问题的最佳方法是什么?我正在寻找使用 PlayerPrefs、Time.time(游戏开始的时间)并且在文档或论坛中找不到任何可以让我访问当前日期的内容。

我的伪代码如下:

存储当前日期的变量

存储总播放时间的变量

存储达到 2 小时标记的时间的变量

如果过去 2 小时标记已超过 24 小时:

游戏开启

别的

Application.Quit() - 关闭游戏

当前总播放时间变量 += Time.time

0 投票
0 回答
94 浏览

unity3d - 如何在unity3d中相对于局部轴将绝对旋转角度应用于GameObject?

我是统一的新手,我尝试使用 Transform.Rotate() ,但这与以前的旋转值有关。如何在局部轴上应用绝对旋转。

谢谢

0 投票
1 回答
142 浏览

unity3d - 使用大数据改善 Unity 上的游戏负载

我正在使用 Unity3d 平台为孩子们开发游戏。我的游戏有很多图片和图像。当我加载游戏时,我使用了大约 50,000 个字符串的 Hashset。每个字符串是我希望玩家看到的每张图片的一个单词。

我该怎么做才能将游戏的加载时间减少到最低限度?目前仅打开游戏大约需要 20 秒,而无需执行任何操作。我的项目目前适用于 Android 设备。

0 投票
1 回答
47 浏览

c# - Unity3d 触发器不适用于模型?

我最近在我的项目中导入了一个 fbx 模型,并试图将它用作我游戏中的角色。我想让它通过我的玩家,所以我在生成对撞机后将模型设置为触发器。但是,模型似乎仍然与我的播放器发生碰撞,即使它是一个触发器,并且我创建的所有其他触发器似乎都可以正常通过。有什么建议么?

0 投票
1 回答
2845 浏览

git - 从 git 更新后检查器中缺少参考 - Unity

第一个程序员在任何脚本中创建一个公共变量(例如 GameObject),然后他在检查器中将一个游戏对象分配给这个变量,然后他进行推送,然后第二个程序员得到更新并且没有游戏对象检查员。我们的项目中有 .meta 文件,资产序列化模式是强制文本,我们也使用 git 和 bitbucket。它不是一直发生,也不是在所有参考文献中都发生,只是有时。有什么问题,我们该如何解决?Unity 5.3.3,但它也发生在以前的版本中。