标签: unity5

从代码启用/禁用VR

对于部署到Android设备的应用,如何在Unity中以编程方式将显示设置为立体?

我想要一个UI菜单,用户可以在"VR模式"和普通模式之间切换.我默认不想要VR模式,因为它应该是运行时的选项.我知道在构建设置中有"虚拟现实支持"的设置,但同样,我不希望默认启用此功能.

c# unity-game-engine virtual-reality unity5

6
推荐指数
2
解决办法
6575
查看次数

实时C#websockets客户端与Unity3D一起使用?

我正在用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库的问题或建议一个可以工作的库吗?

c# unity-game-engine websocket websocket-sharp unity5

6
推荐指数
1
解决办法
1万
查看次数

如何统一禁用物理系统

我想在统一引擎中开发本机android应用程序,并且不需要使用物理,是否有可能为特定项目统一禁用物理引擎.

c# monodevelop unity-game-engine unityscript unity5

6
推荐指数
2
解决办法
5638
查看次数

使用Probuilder的Unity 5照明/光照贴图

我又回到了Unity.我曾经使用Unity 4来创建我的关卡,我可以从枪中射出实时灯光.我还使用Probuilder来创建我的场景,并拥有大量的汽车和巡逻警卫.它很顺利.

我尝试使用Unity 5创建我的新游戏,一切看起来都很棒.轻弹跳看起来很棒.然而我意识到,当我试图烘烤我的场景时,由3个房间和一个用probuilder制作的走廊组成,到目前为止,它似乎需要永远烘烤,我的烤灯似乎不会烘烤到Probuilder网格上.我有一个实时定向灯,一个混合点光源和一个实时聚光灯.

我得到了大约300个设置,从一个小水平大约120k垂直和大约30-40 fps.使用遮挡剔除.

我不明白Unity 5的照明现在是如何工作的,令人沮丧.所有实时GI.我可以在这里得到一些帮助吗?

c# unity-game-engine unity5

5
推荐指数
1
解决办法
474
查看次数

粒子在团结中创造星场

我的脚本有问题.我试图在一个球体中随机创建一个星场,用于我的统一场景.但我对团结和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)

c# particle-system unity5

5
推荐指数
1
解决办法
6196
查看次数

Unity 中的游戏对象更新顺序

统一手册描述了脚本函数调用的顺序。但是,我想知道是否有关于游戏对象本身在 Unity 中被考虑的顺序的任何规则。

GameObjects 基本上是 Unity 场景图的节点,并且(假设场景本身是根节点)它们形成一棵树。我想知道该树结构是否对考虑 GameObjects 的顺序施加了任何规则。

如前所述,本手册描述了Awake()总是被调用之前,Start()它总是在第一次调用之前调用Update()等。然而,这些时间关系(大部分)是在单个游戏对象上的单个脚本范围内给出的。我想知道是否还有规则说明Start()在场景中的所有游戏对象上调用(或任何其他方法)的顺序。

具体我想知道:

  1. 父母总是先于孩子考虑吗?
  2. 兄弟姐妹是否按照它们在场景图中的显示顺序来考虑?
  3. 脚本执行顺序是仅在单个游戏对象的范围内强制执行,还是考虑所有游戏对象?

unity-game-engine unity5

5
推荐指数
1
解决办法
2736
查看次数

如何在 Unity Editor 中运行两个游戏窗口

Unity 编辑器中的两个游戏窗口是什么意思?

好吧,如果人们基本上能够在编辑器中拥有两个单独的窗口,而不是仅限于只有一个:

为什么这会有用?

它主要用于网络。在测试联网多人游戏时,通常需要等待很长时间才能创建独立构建来测试和调试事件,而且在独立上调试错误很困难。

如果我可以通过单击播放按钮运行两个实例(一个服务器/一个客户端),我会节省很多时间。

这是一个游戏窗口顺便说一句 https://i.gyazo.com/2aeb04f8a41f1508d262cf9a526311bc.png

c# unity-game-engine unity5

5
推荐指数
1
解决办法
1万
查看次数

Unity如何更改画布的渲染顺序

我正在使用unity 5.3,我正在尝试更改两个重叠的跨平台控件的渲染顺序,每个控件都驻留在自己的画布中.

在以前的版本中,您可以使用窗口将窗口置于焦点

GUI.FocusWindow(0);
Run Code Online (Sandbox Code Playgroud)

但是,这不适用于新系统.我也试过修改编辑器窗口中没有做任何事情的顺序.

有谁知道如何将控件移到另一个上面?

c# cross-platform unity-game-engine unity5

5
推荐指数
2
解决办法
1万
查看次数

Unity3D 播放器移动脚本

我有一个脚本可以让你控制一个玩家并跳跃。但是,我正在努力使播放器不断移动,并且无法通过键盘上的 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)

c# unity-game-engine unity5

5
推荐指数
0
解决办法
2万
查看次数

了解 Unity.Social 和 Apple GameCenter 排行榜中的“每日”和“每周”范围

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 获取“每日”分数时,将返回以下哪些内容:

  1. 从今天日期开始的分数(如果是,在哪个时区?)。
  2. 过去 24 小时的分数,与日期无关。

“每周”时间范围也是如此:“上周”在这里是什么意思?

  1. 在“当前”周的范围内,即从星期日开始?
  2. 在过去 168 小时(7*24)范围内,不考虑当前日期?

c# unity-game-engine game-center game-center-leaderboard unity5

5
推荐指数
1
解决办法
505
查看次数