我想使用Unity创建一个视频聊天应用程序
到目前为止,我所发现的只是一个名为VideoChat的资产,但图像和声音质量低于平均水平,而在移动设备上它不会切换到前置摄像头.这使它毫无意义,因为它被称为视频聊天..
我在互联网上找到了一些webRTC的东西,但我不确定这是否有助于我在Unity中使用前置摄像头与智能手机(ios或android)与其他设备前置摄像头进行对话.
我刚刚开始学习HTC vive应用程序开发与团结,并希望与Object进行交互,并希望在控制器与之交互时获取它.尝试学习StreamVR Unity Toolkit文档.我在示例演示中找到了一个场景,其中Gameobject通过控制器进行交互,但涉及的脚本很多.我很惊讶在一个立方体VRTK_InteractalbeObject被附加并且它正在响应控制器.我怎样才能在htc vive中获得交互对象.
我试图调用一个设置一些变量的协同程序,等待几秒钟,然后将它们设置回来.
不幸的是,整个协程都在同时开始,无需等待.在这种情况下,它几乎就像从未调用过该函数一样.
public void Dash(){
lastDashTime = Time.time + dashWaitDuration;
motionBlur (); //this call is not working as expected
animator.SetFloat ("Speed", 0);
playerRigidBody.MovePosition (playerRigidBody.position + transform.forward * 1.75f);
}
//this is the coroutine
IEnumerator motionBlur(){
print ("Hello");
camMotionBlur.jitter = 10;
camMotionBlur.enabled = true;
yield return new WaitForSeconds (2);
camMotionBlur.enabled = false;
camMotionBlur.jitter = 0.125f;
}
Run Code Online (Sandbox Code Playgroud) 我使用随机范围来选择产生的敌人类型之间.
IEnumerator Spawn()
{
int randAmount = UnityEngine.Random.Range(minAmount, maxAmount); // Determine quantity of enemies to be spawned
int randType = UnityEngine.Random.Range(0, 1); // Determine which enemy is spawned
enemies[randType](randAmount); // Call enemy type, then amount
yield return new WaitForSeconds(spawnRate);
StartCoroutine(Spawn()); // Loop
}
Run Code Online (Sandbox Code Playgroud)
当与调试器连接到统一时,我可以看到randAmount每次调用协程时都会发生变化,但是randType从0开始没有变化,我一直在测试,我开始认为它不再是运气不好.
我知道第一个变量工作正常,无论如何确保第二个变量正常工作,或者每次调用协程时获取0到1之间的随机数的替代方法.
因此,当我的角色被敌人的火焰呼吸击中时,我想创造出被点燃的角色的感觉.因此,当角色着火时,我希望他在特定的时间内失去特定的健康状况.
例如; 让我说他已经着火3秒了,我想让他因为着火而失去30点生命值,我将如何均匀分配失去30点生命值3秒钟?我不希望30点伤害立即应用到健康状态,我希望它能够慢慢击退玩家的健康状况,以便在3秒内完成30点伤害.
游戏是用c#制作的.
谢谢.
我正在为Android平台统一制作Checkers游戏。我被赋予使该游戏成为多人游戏并以C#语言实现TCP / IP网络的任务,而对于服务器端,我必须使用Golang。我几乎完成了游戏本身,但是我对服务器和tcp以及如何为我的游戏实现它们一无所知。有什么方法可以启动该程序或教程以显示如何执行该操作?任何建议都会很棒!提前致谢!
今天我在Unity项目中遇到了一些有趣的C#代码:
MyScript ms = new MyScript(); //MyScript derives from MonoBehaviour
ms = null;
if(!ms) { Debug.Log("ms = "+(ms==null)); }
Run Code Online (Sandbox Code Playgroud)
它看起来似乎表现如下:
if(ms == null) { /*Do Stuff*/ }
Run Code Online (Sandbox Code Playgroud)
但它真的是一回事吗?我还没有找到任何关于此的文档.有没有理由不使用较短的版本或更喜欢一个?
我想将我的Unity项目构建到iOS平台.
当我点击构建到iOS时,我会看到这个屏幕提示:
虽然说Run in Xcode as但是我没有Mac,但如果我错了,请纠正我但你不能在Windows上运行Xcode.
那么,如果没有Mac,我无法构建我的项目吗?
您如何找到自某个变量发生变化以来的时间?以一个布尔变量为例,您如何找到自上次更改以来的时间?我想使用布尔变量作为触发器(当它为真时激活触发器),但仅在经过一段精确的,恒定的时间(例如0.5秒)后才更改为真(它只能从false更改为真正).
这是我的代码:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class hitRegistration : MonoBehaviour
{
AudioSource hitSound;
private bool hitState = false;
// Use this for initialization
void Start()
{
hitSound = gameObject.GetComponent<AudioSource>();
}
void OnMouseOver()
{
Debug.Log("Mouse is over game object.");
if (Input.GetKey(KeyCode.X) && hitState == false)
{
hitSound.Play();
hitState = true;
}
}
private void OnMouseExit()
{
Debug.Log("Mouse is no longer over game object.");
if (hitState == true)
{
// sound clip gets cut if the cursor leaves before …Run Code Online (Sandbox Code Playgroud)