我无法相信这个问题还没有在某个地方被问过; 一个相当彻底的谷歌搜索没有结果.Unity文档说明了这个Behaviour.isActiveAndEnabled领域:
是否已启用行为已启用.
启用行为时为true,禁用时为false.
它说的是Behaviour.enabled:
已启用行为已更新,已禁用行为.
这显示为行为检查器中的小复选框.
因此,有一篇文章详细阐述了"启用"意味着什么比另一个更重要.据我所知,这些字段在完全相同的条件下是真/假的!那么区别是什么呢?你什么时候用一个而不是另一个?非常感谢澄清!
我看到Unity的多人游戏服务页面,我完全糊涂了:
我是否可以在已发布的游戏中使用Unity的高级网络API(NetworkManager/NetworkManagerHUD)而无需支付Unity Matchmaker和中继服务器(无论这些是什么)?
我有自己的基于云的VM,我想在其上运行专用服务器.我的项目只是一个小游戏,我会和我的朋友玩(没有商业或大规模).我想在我的VM上以专用服务器模式运行该游戏的已发布副本,并让我的朋友运行他们发布的客户端副本并通过NetworkManager连接到服务器.
我可以免费吗?我不介意我的朋友是否必须使用NetworkManagerHUD在他们的游戏副本中手动输入服务器的IP和端口.他们这样做会被视为"CCU"(Unity Personal限制为20)吗?那会使用Unity Matchmaker带宽(0.49美元/ GB,甚至不适用于Unity Personal)吗?
任何澄清将不胜感激!:)
与此不重复.
我想让一个字符串有一个最大长度.它永远不会超过这个长度.让我们说20个字符长度.如果提供的字符串> 20,则取前20个字符串并丢弃其余字符串.
这个问题的答案显示了如何使用函数限制字符串,但我想在没有函数的情况下直接执行.我希望每次写入字符串时都会发生字符串长度检查.
下面是我并不想这样做:
string myString = "my long string";
myString = capString(myString, 20); //<-- Don't want to call a function each time
string capString(string strToCap, int strLen)
{
...
}
Run Code Online (Sandbox Code Playgroud)
我能用一个属性完成这个:
const int Max_Length = 20;
private string _userName;
public string userName
{
get { return _userName; }
set
{
_userName = string.IsNullOrEmpty(value) ? "" : value.Substring(0, Max_Length);
}
}
Run Code Online (Sandbox Code Playgroud)
然后我可以轻松地使用它,而不是调用函数来限制它:
userName = "Programmer";
Run Code Online (Sandbox Code Playgroud)
这个问题是每个string我想要上限必须为它们定义多个变量.在这种情况下,_userName和userName(属性)变量.
任何聪明的方法,不为每个字符串创建多个变量,同时,每次我想修改时都不必调用函数string …
在Unity中制作C++插件时,更容易使用它Debug.Log来快速查看变量值,但此功能仅可从C#端获得.这使得调试C++插件非常困难,因为Unity的调试器不支持它.std::cout不是一个选项,因为它没有在编辑器中显示.
我查看了位于的Unity C++ API,<UnityInstallationDirecory>\Editor\Data\PluginAPI但没有找到有关登录API的任何信息.
有关如何在C++编辑器日志中显示的任何建议?
我正在使用Unity 2017.2.0f3,当我使用GUIText它时,它显示"此组件是旧UI系统的一部分,将在未来版本中删除." 那么我应该使用的最佳替代方案是什么?
我正在开发一个需要引用.txt文件的HoloLens项目.我将这些文件存储在Unity的"Resources"文件夹中,并让它们完美地运行(通过Unity运行时):
string basePath = Application.dataPath;
string metadataPath = String.Format(@"\Resources\...\metadata.txt", list);
// If metadata exists, set title and introduction strings.
if (File.Exists(basePath + metadataPath))
{
using (StreamReader sr = new StreamReader(new FileStream(basePath + metadataPath, FileMode.Open)))
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
但是,在为HoloLens部署构建程序时,我能够运行代码,但它不起作用.没有任何资源出现,当检查HoloLens Visual Studio解决方案(通过在Unity中选择构建创建)时,我甚至没有看到资源或资源文件夹.我想知道我做错了什么,或者是否有一种特殊的方式来处理这些资源.
还有图像和声音文件......
foreach (string str in im)
{
spriteList.Add(Resources.Load<Sprite>(str));
}
Run Code Online (Sandbox Code Playgroud)
字符串'str'有效; 它与Unity完全一致.然而,再次,它在通过HoloLens运行时没有加载任何东西.
我想从网格红色,蓝色和绿色设置三角形的每个三个顶点.
如本教程的第一部分所示,该教程适用于另一种语言.这是他们用来为网格中每个三角形中的每个椎骨设置红色,绿色和蓝色的代码:
function set_wireframe_colors(m)
local cc = {}
for i = 1, m.size/3 do
table.insert(cc, color(255,0,0))
table.insert(cc, color(0,255,0))
table.insert(cc, color(0,0,255))
end
m.colors = cc
end
Run Code Online (Sandbox Code Playgroud)
这就是使用简单的顶点颜色着色器输出的样子:
我尝试在Unity中使用C#重新创建相同的东西,但我正在努力学习本教程的第一部分.
这是我的代码:
void Start()
{
Mesh mesh = GetComponent<MeshFilter>().mesh;
Vector3[] vertices = mesh.vertices;
//Create new colors array where the colors will be created.
Color32[] colors = new Color32[vertices.Length];
for (int i = 0; i < vertices.Length; i += 3)
{
colors[i] = new Color32(255, 0, 0, 255);
colors[i + 1] …Run Code Online (Sandbox Code Playgroud) 我在mac osx sierra上从unity构建apk文件时出现以下错误.在重新启动我的macbook之前,这也很好,但现在不行.
我在下面添加了错误详情:
注意:我正在使用facebook sdk.
Error: Error while saving blame file, build will continue
Error: The prefix "tools" for attribute "tools:overrideLibrary" associated with an element type "uses-sdk" is not bound.
UnityEditor.HostView:OnGUI()
Run Code Online (Sandbox Code Playgroud)
和:
AndroidSDKToolsException: Unable to merge android manifests. See the Console for more details.
UnityEditor.Android.AndroidSDKTools.DetectErrorsAndWarnings (System.String logMessages, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) …Run Code Online (Sandbox Code Playgroud) android unity-game-engine android-manifest facebook-unity-sdk
我正在尝试使用Shells技术在Unity中实现毛发.Fins技术是故意遗漏的,因为我希望它在低端手机(主要是Android设备)上运行,并且需要OpenGL ES 3.0及更高版本,而Shells技术只需要OpenGL ES 2.0.
有一个基于XNA的Shell技术的例子,我试图将它移植到Unity但它无法工作.这是XNA项目的文章.
在XNA着色器:
float4x4 World;
float4x4 View;
float4x4 Projection;
float CurrentLayer; //value between 0 and 1
float MaxHairLength; //maximum hair length
texture FurTexture;
sampler FurSampler = sampler_state
{
Texture = (FurTexture);
MinFilter = Point;
MagFilter = Point;
MipFilter = Point;
AddressU = Wrap;
AddressV = Wrap;
};
struct VertexShaderInput
{
float3 Position : POSITION0;
float3 Normal : NORMAL0;
float2 TexCoord : TEXCOORD0;
};
struct …Run Code Online (Sandbox Code Playgroud) Unity 中是否有 C# 方式来复制现有的 GameObject 及其所有子项?就我而言,我有一个空的 GameObject,其中有许多 Text 对象作为子对象,我想为它们创建一个副本,包括相对位置、文本值、字体、颜色等......
预制件不会轻易工作,因为我想复制对象,包括其当前状态。
c# ×9
unity5 ×2
android ×1
assets ×1
c++ ×1
copy ×1
gameobject ×1
hololens ×1
matchmaking ×1
multiplayer ×1
resources ×1
shader ×1
shaderlab ×1
vertex ×1
xna ×1