使用Unity 3D的Git源代码控制的最佳实践是什么,特别是在处理Unity 3D项目的二进制特性时?请描述工作流程,.gitignore中将包含哪些路径,应在Unity和/或项目中设置哪些设置,以及应注意的任何其他特殊事项.
注意:我意识到使用资产服务器是Unity推荐的方式,但我想出于各种原因使用Git.请不要说明我应该使用资产服务器的答案.资产服务器真的不适合我.
准备Unity项目以提交到git存储库所需的步骤是什么?GitHub的?我不想存储不必要的文件(特别是临时文件,尽可能避免二进制格式).
我理解协程的原理.我知道如何让标准StartCoroutine/ yield return模式在Unity中的C#中工作,例如调用一个方法返回IEnumeratorvia StartCoroutine并在该方法中执行某些操作yield return new WaitForSeconds(1);,等待一秒,然后执行其他操作.
我的问题是:幕后真的发生了什么?什么是StartCoroutine真的?什么IEnumerator是WaitForSeconds恢复?如何StartCoroutine将控制权返回到被调用方法的"其他"部分?所有这些如何与Unity的并发模型相互作用(在不使用协同程序的情况下,许多事情同时发生)?
我的脚本有点问题.当我用Visual Studio为Unity编写C#脚本时,似乎我在记事本中工作,没有自动完成(正确吗?)而且我必须写得非常慢.
请观看视频.在开始是正常情况(从教程),第二部分显示我的问题.
例如,该transform课程不显示建议或自动完成.
有问题的图片:
Unity版本:5.5.2f1
Visual Studio 2015
安装了Visual Studio Tools for Unity
我有一个从PHP文件发送到Unity的项目列表WWW.
的WWW.text样子:
[
{
"playerId": "1",
"playerLoc": "Powai"
},
{
"playerId": "2",
"playerLoc": "Andheri"
},
{
"playerId": "3",
"playerLoc": "Churchgate"
}
]
Run Code Online (Sandbox Code Playgroud)
我[]从哪里修剪额外的string.当我尝试使用它解析它时Boomlagoon.JSON,只检索第一个对象.我发现我已经到deserialize()了列表并导入了MiniJSON.
但我很困惑如何deserialize()这个列表.我想遍历每个JSON对象并检索数据.如何使用C#在Unity中执行此操作?
我正在使用的课程是
public class player
{
public string playerId { get; set; }
public string playerLoc { get; set; }
public string playerNick { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
修剪后[]我可以使用MiniJSON解析json.但它只返回第一个KeyValuePair.
IDictionary<string, object> players = Json.Deserialize(serviceData) as IDictionary<string, object>;
foreach (KeyValuePair<string, …Run Code Online (Sandbox Code Playgroud) 错误:
Invalid command android
UnityEditor.HostView:OnGUI()
Run Code Online (Sandbox Code Playgroud)
CommandInvokationFailure:
Unable to list target platforms. Please make sure the android sdk path is correct. See the Console for more details.
C:/Program Files/Java/jdk1.8.0_121\bin\java.exe -Xmx2048M -Dcom.android.sdkmanager.toolsdir="C:/Users/great/AppData/Local/Android/Sdk\tools" -Dfile.encoding=UTF8 -jar "C:\Program Files\Unity\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\sdktools.jar" -
stderr[
Error:Invalid command android
]
stdout[
]
exit code: 64
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, 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, …Run Code Online (Sandbox Code Playgroud) 我有一个为iOS构建的非常小的Objective-C库,我想将它导出到Unity.我理解编写一个csharp包装器的基本过程,它将所有调用编组到本机库,但我完全不知道从哪里开始.任何人都可以逐步解释如何使用我的库创建一个统一包,以便我也可以将它分发给其他开发人员.
Unity3d文档非常简短,并没有解释任何内容.
谢谢.
使用Unity编程时需要使用哪种语言?或者它是许多语言的API?
我仔细阅读了文档,我想我错过了使用语言的观点.
它说它有iOS部署,这仍然允许程序员在目标C中编码吗?
Unity是一个可以用于许多平台的sdk,它是如何工作的?它提到在多个平台上部署相同的代码.
Unity为Asset文件夹中的文件夹创建和删除元文件.
这可能会在使用版本控制时产生令人讨厌的情况(您可以跳过并转到问题):有人创建了一个文件夹,这些文件将被忽略但忘记忽略文件夹的元文件.Unity创建元文件,此人将元添加到版本控制.另一个人获得变更集,由于他没有该文件夹,他的Unity删除了元文件,他从版本控制中删除了元文件.并非团队中的每个人都理解这一点,因此这个过程会在地狱的循环中延续下去.
令人惊讶的是,这种情况始终存在.那么,有两个问题:
如何在Android上的Canvas on Touch上检测UI对象?
例如,我有具有5个对象,诸如帆布Image,RawImage,Buttons,InputField等.
当我触摸按钮UI对象然后做一些事情.单击依赖时,每个按钮执行不同的过程.
代码如下所示:
private void Update()
{
if (Input.touches.Length <= 0) return;
for (int i = 0; i < Input.touchCount; i++)
{
if (Button1.touch)
if (Input.GetTouch(i).phase == TouchPhase.Began)
login();
else if (Button2.touch && Input.GetTouch(i).phase == TouchPhase.Began)
LogOut();
}
}
Run Code Online (Sandbox Code Playgroud)
那怎么办呢?
第二:如何检测Gameobject获取触摸?是否与上述相同?
c# ×4
git ×3
android ×1
coroutine ×1
intellisense ×1
ios ×1
json ×1
mercurial ×1
objective-c ×1