对于部署到Android设备的应用,如何在Unity中以编程方式将显示设置为立体?
我想要一个UI菜单,用户可以在"VR模式"和普通模式之间切换.我默认不想要VR模式,因为它应该是运行时的选项.我知道在构建设置中有"虚拟现实支持"的设置,但同样,我不希望默认启用此功能.
我正在用C#构建一个Unity3D客户端,用于我制作的多人游戏.服务器是用Node.js编写的,我用Javascript编写了一个运行良好的Web客户端.但是我的Unity3D客户端实现遇到了滞后问题.我正在使用websocket-sharp库,但是无法像我在带有HTML5 Websocket类的Javascript客户端上那样使用它.我相信问题在于websocket-sharp库的制作方式,目前每个Send()都会导致锁定_forSend,因此数据将像这样传输:
data1:frg1
data1:frg2
data2:frg1
data2:frg2
...
Run Code Online (Sandbox Code Playgroud)
但是在我的工作javascript实现上,它看起来像这样,因为它是真正的多线程:
data1:frg1
data2:frg1
data2:frg2
data1:frg2
Run Code Online (Sandbox Code Playgroud)
因此,我认为这是我的C#Unity实现滞后的原因,因为websockets-sharp库的行为就像这样.任何人都可以确认这是websockets-sharp库的问题或建议一个可以工作的库吗?
我想在统一引擎中开发本机android应用程序,并且不需要使用物理,是否有可能为特定项目统一禁用物理引擎.
我又回到了Unity.我曾经使用Unity 4来创建我的关卡,我可以从枪中射出实时灯光.我还使用Probuilder来创建我的场景,并拥有大量的汽车和巡逻警卫.它很顺利.
我尝试使用Unity 5创建我的新游戏,一切看起来都很棒.轻弹跳看起来很棒.然而我意识到,当我试图烘烤我的场景时,由3个房间和一个用probuilder制作的走廊组成,到目前为止,它似乎需要永远烘烤,我的烤灯似乎不会烘烤到Probuilder网格上.我有一个实时定向灯,一个混合点光源和一个实时聚光灯.
我得到了大约300个设置,从一个小水平大约120k垂直和大约30-40 fps.使用遮挡剔除.
我不明白Unity 5的照明现在是如何工作的,令人沮丧.所有实时GI.我可以在这里得到一些帮助吗?
我的脚本有问题.我试图在一个球体中随机创建一个星场,用于我的统一场景.但我对团结和c#是新手,所以我有点困惑.
星星有一个固定的位置,所以它们不应该移动,因此在Start()中创建; 然后在Update()中绘制;
问题是我收到此错误:
MissingComponentException: There is no 'ParticleSystem' attached to the "StarField" game object, but a script is trying to access it.
You probably need to add a ParticleSystem to the game object "StarField". Or your script needs to check if the component is attached before using it.
Stars.Update () (at Assets/Stars.cs:31)
Run Code Online (Sandbox Code Playgroud)
如果我手动添加一个粒子系统组件,它会导致一大堆闪烁的橙色斑点,这是我不想要的,所以我想在脚本中添加一些组件.
这是我附加到空游戏对象的脚本:
using UnityEngine;
using System.Collections;
public class Stars : MonoBehaviour {
public int maxStars = 1000;
public int universeSize = 10;
private ParticleSystem.Particle[] points;
private void …Run Code Online (Sandbox Code Playgroud) 该统一手册描述了脚本函数调用的顺序。但是,我想知道是否有关于游戏对象本身在 Unity 中被考虑的顺序的任何规则。
GameObjects 基本上是 Unity 场景图的节点,并且(假设场景本身是根节点)它们形成一棵树。我想知道该树结构是否对考虑 GameObjects 的顺序施加了任何规则。
如前所述,本手册描述了Awake()总是被调用之前,Start()它总是在第一次调用之前调用Update()等。然而,这些时间关系(大部分)是在单个游戏对象上的单个脚本范围内给出的。我想知道是否还有规则说明Start()在场景中的所有游戏对象上调用(或任何其他方法)的顺序。
具体我想知道:
Unity 编辑器中的两个游戏窗口是什么意思?
好吧,如果人们基本上能够在编辑器中拥有两个单独的窗口,而不是仅限于只有一个:
为什么这会有用?
它主要用于网络。在测试联网多人游戏时,通常需要等待很长时间才能创建独立构建来测试和调试事件,而且在独立上调试错误很困难。
如果我可以通过单击播放按钮运行两个实例(一个服务器/一个客户端),我会节省很多时间。
这是一个游戏窗口顺便说一句 https://i.gyazo.com/2aeb04f8a41f1508d262cf9a526311bc.png
我正在使用unity 5.3,我正在尝试更改两个重叠的跨平台控件的渲染顺序,每个控件都驻留在自己的画布中.
在以前的版本中,您可以使用窗口将窗口置于焦点
GUI.FocusWindow(0);
Run Code Online (Sandbox Code Playgroud)
但是,这不适用于新系统.我也试过修改编辑器窗口中没有做任何事情的顺序.
有谁知道如何将控件移到另一个上面?
我有一个脚本可以让你控制一个玩家并跳跃。但是,我正在努力使播放器不断移动,并且无法通过键盘上的 WASD 键进行控制。每当我尝试只使用controller.Move()重力功能时,它就会消失。现在,使用此代码 Gravity 可以工作,但 WASD 也已启用。我的问题是:我怎样才能让这段代码让我的玩家不断移动,并且仍然使用重力?
using UnityEngine;
using System.Collections;
public class PlayerMotor : MonoBehaviour {
public float speed = 6.0F;
public float jumpSpeed = 8.0F;
public float gravity = 20.0F;
private Vector3 moveDirection = Vector3.back;
void Update() {
CharacterController controller = GetComponent<CharacterController>();
if (controller.isGrounded)
{
controller.Move (Vector3.back * Time.deltaTime);
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
moveDirection = transform.TransformDirection(moveDirection);
moveDirection *= speed;
if (Input.GetButton("Jump"))
moveDirection.y = jumpSpeed;
}
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
} …Run Code Online (Sandbox Code Playgroud) Unity 的Social.TimeScope文档说:
TimeScope.Today:只返回今天的分数 https://docs.unity3d.com/352/Documentation/ScriptReference/TimeScope.Today.html
但是,Apple 的原生 Swift 文档说:
今天的案例:每个玩家仅限于过去 24 小时内记录的分数。 https://developer.apple.com/documentation/gamekit/gkleaderboardtimescope
因此,当Unity.Social.TimeScope用于从 Apple 的 GameCenter 获取“每日”分数时,将返回以下哪些内容:
“每周”时间范围也是如此:“上周”在这里是什么意思?
c# unity-game-engine game-center game-center-leaderboard unity5