最近我一直在研究保存/加载功能.我想要做的是Vector3在按下"保存"按钮后保存当前电流.但是,我似乎无法弄清楚如何找到一个GameObjects Vector3.
互联网上有很多教程,但它们都在JS中.
我必须双击“返回”键才能提交值!它在 2 小时前工作正常(我只需要按回车一次),但后来我重新启动了 Unity,现在我需要双击“回车”才能提交值。
更新 #2
我有一个脚本附加到包含输入字段的画布。代码如下:-
public class Example: MonoBehaviour {
public InputField inputField;
void Start () {
}
void Update () {
HandleUserInput ();
}
void HandleUserInput()
{
if (inputField.isFocused && inputField.text != "" && (Input.GetKey (KeyCode.Return) || Input.GetKey(KeyCode.KeypadEnter))) {
Debug.Log ("Pressed");
//Do stuff
inputField.text = ""; //Clear Inputfield text
inputField.ActivateInputField(); //Re-focus on the input field
inputField.Select ();//Re-focus on the input field
}
}
Run Code Online (Sandbox Code Playgroud)
当我播放场景并在字段中输入并按第一个返回时,日志不会显示任何内容,但是当我再次按下它时它会显示“已按下”。
更新 #3
我找到了某种解决方案,如果我删除“inputField.isFocused”输入字段将检测到第一个“返回”键。但是,在我的情况下,如果输入字段中有一些文本,那么用户单击场景中的任何其他地方然后按 Enter,输入字段将提交它。
请指教
我正在创建一个针对Samsung Gear VR的Unity应用程序.我目前有两个场景:
从第一个场景开始,我想在后台加载第二个场景,并在加载后切换到它.当新场景在后台加载时,用户应该保持移动头部以查看VR环境的任何部分的能力.
我正在使用SceneManager.LoadSceneAsync但它不起作用:
// ...
StartCoroutiune(loadScene());
// ...
IEnumerator loadScene(){
AsyncOperation async = SceneManager.LoadAsyncScene("Scene", LoadSceneMode.Single);
async.allowSceneActivation = false;
while(async.progress < 0.9f){
progressText.text = async.progress+"";
}
while(!async.isDone){
yield return null;
}
async.allowSceneActivation = true;
}
Run Code Online (Sandbox Code Playgroud)
使用该代码,场景永远不会改变.
我试过这个典型SceneManager.LoadScene("name")的情况,在这种情况下,场景在30秒后正确变化.
我正在学习 Unity 的第三天,目前正在做滚球教程。我正在尝试添加一个重新启动按钮,将球传送回开始位置/原点。一切都很好,但是在我重新启动后球会继续移动,但我希望它留在一个位置而不是自己移动。
我的意思是,如果我以最大速度向左移动并按“R”重新启动,那么它会在一段时间内保持快速向左移动,但我想要实现的是球在之后不会继续自行移动我重新启动它的位置(也许它的速度只是下降得太慢以至于不明显,在这种情况下我希望它减速得更快)。
这是我刚刚尝试并“希望”可以工作的代码,但没有。我认为我在这里遇到的问题是下一帧再次分配了一个新的 axisHorizontal/axisVertical 变量值,该值取自Input.GetAxis,据我是不可能改变的。
这意味着大于 0/0/0 的运动力和 AddForce 将在下一帧再次激活。
using UnityEngine;
using System.Collections;
public class PlayerScript : MonoBehaviour {
public float movementSpeed = 7f;
private Rigidbody rigidSphere;
void Start() {
rigidSphere = GetComponent<Rigidbody>();
}
void FixedUpdate() {
float axisHorizontal = Input.GetAxis("Horizontal");
float axisVertical = Input.GetAxis("Vertical");
Vector3 movementForce = new Vector3(axisHorizontal, 0.0f, axisVertical);
rigidSphere.AddForce(movementForce * movementSpeed);
if (Input.GetKeyDown(KeyCode.R)) {
transform.position = new Vector3(0, 0, 0);
rigidSphere.AddForce(0, 0, 0);
axisHorizontal = 0;
axisVertical = 0; …Run Code Online (Sandbox Code Playgroud) 我有一个常规的Unity3d项目,我创建了一个简单的第一人称移动"游戏".我最近发现了如何使用Unity并使用通用Windows平台将应用程序放到Xbox One开发人员控制台上.然而,当我将我的游戏构建为Windows商店应用程序时,它说
"尚未安装当前选定的脚本后端(.NET)." 有谁知道如何解决这个问题和/或下载Unity .NET脚本后端?提前致谢!
我想知道 Unity3d 中的 Streaming assets 文件夹和 resources 文件夹之间的区别?
假设我想使用Unity的粒子系统创建一个对象场,除了我想使用我自己的粒子而不是Unity的默认粒子.如何创建这样的自定义粒子系统?
有没有办法在不使用粒子系统的情况下做到这一点?我希望对象以类似的方式移动(即随机移动).
我对C#很新,所以如果这很明显,请原谅我.
我正在按照本教程中的步骤操作,并在第六步遇到问题.它给出的错误是:它给出的错误是这样的:
UnityEngine.Component' does not contain a definition for `velocity' and no extension method `velocity' of type `UnityEngine.Component' could be found. Are you missing an assembly reference?'
Run Code Online (Sandbox Code Playgroud)
这是代码:
using UnityEngine;
using System.Collections;
public class RobotController : MonoBehaviour {
//This will be our maximum speed as we will always be multiplying by 1
public float maxSpeed = 2f;
//a boolean value to represent whether we are facing left or not
bool facingLeft = true;
//a value to represent our …Run Code Online (Sandbox Code Playgroud) 这是我的毕业设计。游戏的想法是通过提供一些有趣的任务来帮助学生练习编程,这些任务需要C#代码解决方案,例如encodingame.com,当用户产生正确的输出时,结果将在Unity场景中可视化。
我正在使用C#编译器插件在Unity 5运行时中编译用户的代码。一切工作正常(每个场景都单独开始在编辑器中播放场景并停止它),但是当我从场景前进到下一个场景时,在运行时构建用户的C#代码时,此错误会上升(NotSupportedException:被调用的成员)在动态模块中不受支持)(错误总是在第二个场景或下一个场景中出现)。
错误:
NotSupportedException: The invoked member is not supported in a dynamic module
Run Code Online (Sandbox Code Playgroud)
产生错误的行:
this.assemblyReferences = domain.GetAssemblies().Select(a => a.Location).ToArray();
Run Code Online (Sandbox Code Playgroud)
assemblyRefrences是字符串数组:string [] assemblyReferences;
该行在其构造函数中的脚本ScriptBundleLoader中
我有一个由SW编号的8个罗盘点阵列,从顺时针方向到S:
2 3 4
1 5
0 7 6
Run Code Online (Sandbox Code Playgroud)
我想计算从一个点到另一个点的最短路线是顺时针(+1)还是逆时针(-1).例如,从7到5将是-1,从7到0将是+ 1.
我想这个简单的问题,但今天我的大脑已经冻结了.
我得到的最接近if abs(start - end) < 4, -1, 1但如果开始是3则不起作用.
还有一个类似的问题在这里,接受的答案是使用模,但并没有解释如何.我没有成功地抛出各种计算.