在自上而下的游戏中设置X和Y轴的特定边框
为您提出了另一个快速问题. 我正在制作一个2D自上而下的平台游戏,玩家只能在X和Y轴上移动. 我正在尝试设置地图的边界,以便播放器和所有其他对象都无法跨越它,但是随着代码的尝试,它会给我错误: "不能修改'unityEngine.transform.position'的值类型返回值.考虑将值存储在临时变量中." 这是我尝试的代码,看起来很简单,但是考虑到我在C#的经验水平,我无法说明为什么不允许它: 使用UnityEngine; 使用system.collections; 公共类Borderscript:Monobehaviour { public Vector2 Position; // Use this for initialization void Start () { } // Update is called once per frame void Update () { if (this.transform.posi
2 2024-04-26
编程技术问答社区
如何用WWW加载本地文件作为资产包
所以我一直在尝试使用户加载.obj文件并将其读为资产库,但我无法弄清楚. 我已经弄清楚了如何获取文件的路径,但是我无法将其作为资产捆绑包加载,它只是返回null. 这是我的代码: WWW bundleRequest = new WWW(@"file://" + pathName); while (!bundleRequest.isDone) { yield return null; } AssetBundle bundle = null; if (bundleRequest.bytesDownloaded > 0) { AssetBundleCreateRequest myRequest = AssetBundle.LoadFromMemoryAsync(bundleRequest.bytes);
20 2024-04-26
编程技术问答社区
MySqlConnection = new MySqlConnection(string) 不工作
这是我在Unity3D连接的Visual Studio中的代码: public void SetupSQLConnection() { Debug.Log("Connection Function Started"); if (connection == null) { Debug.Log("If connection == null"); try { Debug.Log("Try block started"); string connectionString = "Server=localhost;" + "Database=therapygame;" + "UID=root;" + "Password=;"; Debug.Log("string set"); connection = new MySqlConn
14 2024-04-26
编程技术问答社区
统一物体没有围绕正确的轴线旋转
因此,我正在编写一个能够使用鼠标运动旋转对象的脚本. 我设置的场景是一个摄像机,前面有一个物体.移动鼠标左将导致物体向左旋转,将鼠标向上移动会导致对象旋转,等等.现在我有一个小问题.当我将对象向左或向右旋转90度时,然后将其向上或向下旋转,它会像我想要的那样绕Z轴而不是X轴旋转.发生这种情况是因为z和x轴的左右旋转时旋转了y轴. 我做了两个GIF,展示了问题: 我一直想发生的事情: 实际发生了什么: 这是我目前正在使用的代码: public float object_rotSens = 100.0f; float object_rotY = 0.0f; float object_rotX = 0.0f; void Update() { object_rotX += Input.GetAxis("Mouse X") * object_rotSens * Time.deltaTime; object_rotY += Input.GetAxis("Mouse Y
4 2024-04-26
编程技术问答社区
统一性:给定目标点和方向,真实地转动汽车
我有一个CSV,它使我在给定时间t的id中为我提供了x,z坐标. 是id=1汽车的摘录数据,并且在几秒钟内进行了坐标.在前三秒钟内,汽车停了下来.然后它转动左,然后再继续直接持续几秒钟. 目前,我根据下一个位置计算方向,并旋转汽车面对面,但是转弯没有"曲线",它只是直接移动到下一个位置: Vector3 direction = (nextPosition - car.transform.position).normalized; if(direction != Vector3.zero) { Quaternion lookRotation = Quaternion.LookRotation(direction); float step = speed * Time.deltaTime; car.transform.rotation = Quaternion.Slerp(car.transform.rotation, lookRotation, Time
8 2024-04-26
编程技术问答社区
确定一个点是否在一条线上的其他两个点之间
我一直在试图找出如何检查一个点是否在同一行上并介于另外两个点之间.如果线是对角线,它似乎可以工作,但是如果垂直或水平的直线失败. 这是我的方法: public bool isBetween(Vector3 C, Vector3 A, Vector3 B) { Vector3 sum = Vector3.Cross(A,B) + Vector3.Cross(A,C) + Vector3.Cross(B,C); if (sum.x == 0 && sum.z == 0 && sum.y == 0) { Vector3 min = Vector3.Min(A, B); Vector3 max = Vector3.Max(A, B); // only checking 2 dimensions if (C.x > min.x && C.x min.z && C
2 2024-04-26
编程技术问答社区
用Firebase数据库统计孩子的最有效方法
目前我正在这样做: DatabaseReference reference = FirebaseDatabase.DefaultInstance.GetReference("Leaders").Child("List1"); reference.GetValueAsync().ContinueWith(task => { int totalChildren = (int)task.Result.ChildrenCount; //Do more stuff } 我想,为什么要让整个快照数计算多少个孩子. 任何不同的方式而没有获取整个快照? 解决方案 firebase没有内置计数运算符.因此,您要么必须下载所有子节点以计数它们(如您现在所做的那样),要么保留一个单独的属性,并在其中跟踪子节点的数量. 后者在写作时需要更多的工作,但会导致更简单的阅读性
6 2024-04-26
编程技术问答社区
防止unity中产生的游戏对象的重叠
iam试图使一个简单的2D平台游戏团结一致.我设法移动了玩家和所有其他东西.我现在面临的问题是,随机产卵的预制措施是重叠的.因此,我的问题是如何防止游戏对象重叠.我使用的预制是具有不同的维度(长度). 这是我使用的C#代码: public class spawnscript : MonoBehaviour { public GameObject[] obj; public float spawnMin; public float spawnMax; // Use this for initialization void Start () { Spawn (); } void Spawn() { Instantiate (obj [Random.Range (0, obj.GetLength (0))], transform.position, Quaternion.ident
18 2024-04-26
编程技术问答社区
解决不准确的重播系统的方法
试图以Unity和C# 进行准确的重播系统 大家好, 我正在从事赛车游戏,我决定添加一个重播系统以允许"幽灵车",最初我是在某些事件中记录的数据,例如按键,但仅在所有框架中记录我管理的数据,好的,因为文件不是很大的,并且重播有效,但是麻烦的是,时间总是有轻微的变化,最多只有0.1秒或0.2,我都有一个关键帧列表,在每个位置,我都会记录一个时间要显示的时间,我认为的麻烦是,由于fps变化,因此在所有同一时间都显示出标记的情况下,并非总是会渲染获胜框架的时间,因此获胜的框架应在应显示后稍微发生在下一个更新中.我使用C#和Unity以防万一,但我认为它主要与此相关.非常感谢任何线索,我已经解决这个问题了一段时间 解决方案 听起来您正在进行逐帧重播,正如您发现的那样,您需要帧与录音相同的延迟播放.在游戏渲染循环中,这不能保证发生. 在记录每一帧的汽车状态(位置,标题等)时,您还需要记录一个时间戳(在这种情况下,从比赛开始积累Time.deltaTime就足够了). 当您播
6 2024-04-26
编程技术问答社区
如何在unity 3D中制作一个动态模型?
我有一个示例代码,该代码是在鼠标上创建动态墙的位置. using UnityEngine; using System.Collections; public class CreateWalls : MonoBehaviour { bool creating; public GameObject start; public GameObject end; public GameObject wallPrehab; GameObject wall; // Use this for initialization void Start () { } // Update is called once per frame void Update () { getinput(); } /* *this is the method for getting mouse
8 2024-04-26
编程技术问答社区
不是每一帧都调用OnTriggerStay
我有2个相同的GameObject(板条箱 - 预制)和2个需要获得的位置.当播放器将第一个板条箱推到点1时,OnTriggerStay在附加到该板条箱的脚本中,并一直在执行工作(在控制台中打印).问题是,当第二板条箱进入第二名时,它可以完成20-30次(打印),然后停下来,然后我只需要触摸它(移动一点),然后再做20-30次,然后停下来. 这是脚本附在板条箱上: public class Block : MonoBehaviour { public BlockType blockType; public int blockId; // Use this for initialization void Start () { } // Update is called once per frame void Update () { } private void OnTriggerSta
12 2024-04-26
编程技术问答社区
获取鼠标在世界空间的位置
我正在使用Unity进行游戏,我有一个小问题,我需要知道鼠标在世界空间中的位置,因为我尝试使用此代码在鼠标位置设置游戏对象: Vector3 p = Input.mousePosition; Vector3 pos = Camera.main.ScreenToWorldPoint( p); testGameObject.transform.position = pos; 它像编辑器中的魅力一样工作,但在exe/apk中,gameObject dos不遵循鼠标: 应该遵循鼠标的游戏对象是圆圈内的" 1" 解决方案 如果它像魅力一样在编辑器中有效,则应在构建中. 我看到它已经在构建中工作了,也许您想要的是将您的对象完全放置以匹配屏幕点击点,但是您的对象离相机太近了,以至于您看不到它. 也许从相机的位置深度存在问题. 尝试添加 之类的东西 Vector3 p = Input.mousePosition; p.z = 20; Vec
4 2024-04-26
编程技术问答社区
UnityStandardAssets.ImageEffects不能被读取
我正在尝试利用模糊效果,但是我遇到了一个错误,读取找不到类型或名称空间的错误.提前致谢. 我是Unity的新手,所以如果这很容易解决,我深表歉意.这是我的代码的屏幕截图. using UnityEngine; using System.Collections; using UnityStandardAssets.Characters.FirstPerson; using UnityStandardAssets.ImageEffects; using System; using System.Reflection; using Assets.SwimmingSystem.Scripts; namespace Assets.SwimmingSystem.Scripts { public class Swim : MonoBehaviour { private FirstPersonController _firstPersonController; privat
6 2024-04-26
编程技术问答社区
OnMarkerFound事件未被调用-Unity3D ARToolKit
我试图在Unity3D上使用ArtoolKit SDK实现一些自定义行为. 根据文档在这里调用OnMarkerFound(ARMarker marker)和OnMarkerLost(ARMarker marker)的系统,以通知何时找到或丢失标记. 但是,我根本无法发射这些功能.我已经浏览了整个源代码,添加了调试手表,作品...但是这两个事件没有发射. 我的脚本看起来像这样: using UnityEngine; using System.Collections; public class CustomTrack : MonoBehaviour { void OnMarkerFound(ARMarker marker){ Debug.Log("MARKER FOUND! WHEEEE!"); } void OnMarkerLost(ARMarker marker){ Debug.Log("MARKER LOST! W
10 2024-04-26
编程技术问答社区
试图使用来自不同脚本的函数需要静态更新,但会破坏代码的统一性
我在Win.cs 中尝试使用的不同脚本上有许多功能 例如. team.cs PlayGame(); . score.cs UpdateScore(); 我有一些变量设置为静态,但不是全部,因为它不需要(尚未?) 我试图将PlayGame();和updatesCore();在胜利这要求我做一个: public static void UpdateScore(){} 现在,这是静态的,我必须去使所有其他vairables与the UpdatesCore静态关联,然后代码断开. 有更好的方法可以做我正在做的事情吗? 我尝试使用team.playgame()作为变量,但这也需要整个静态事物. 对不起,这很难解释. 注意:所有功能都是公开的. 解决方案 如果win.cs需要在Score.cs上调用更新. public class Win : MonoBehaviour{ [SerializeField]priv
10 2024-04-26
编程技术问答社区
统一的有损检测实施
我目前正在与Unity和Transform.Rotation合作.问题在于我有2个旋转对象作为亲子.这使得孩子的尺度很奇怪,并且从盒子到副图.我发现了transform.lossyscale应该解决我的问题,但我不知道如何实施它. tl:博士如何实施变换. 当前代码 float currentR = transform.eulerAngles.x; if(currentR
12 2024-04-26
编程技术问答社区
Unity3D实例化中的空引用
"对象引用未设置为对象的实例"错误仍在显示. 我尝试了每个变量上的debug.log,没有错误. 这是我的代码: using UnityEngine; using System.Collections; using System.Collections.Generic; public class PlatformSpawn : MonoBehaviour { public GameObject platform; public GameObject life; private Vector3 platformrotation; private Vector2 platformpoint, lifepoint; private float platformrange, liferange; public List SpawnList = new List (); void
4 2024-04-26
编程技术问答社区
统一测验游戏,选择正确答案时高亮按钮
选择正确的答案时,我想突出显示绿色按钮? 附在脚本中的button public class AnswerButton : MonoBehaviour { public Text answerText; private GameController gameController; private AnswerData answerData; void Start() { gameController = FindObjectOfType(); } public void SetUp(AnswerData data) { answerData = data; answerText.text = answerData.answerText; } public void HandleClick() {
2 2024-04-26
编程技术问答社区
向远程表单上传文件时出现通用/未知的HTTP错误
我有一个html WWWForm fileForm = new WWWForm(); string[] files = Directory.GetFiles(".", "*.txt"); fileForm.AddField("file", files[0]); WWW www = new WWW("https://file.ac/xySSFOicMMk", fileForm); 不幸的是,这导致了以下异常.这里怎么了? 发送分析时的连接错误...错误:415不支持 媒体类型UnityEngine.debug:logerror(对象) C__ITERATOR0:MOVENEXT()(在资产/调查/调查中:99) UnityEngine.SetupCoroutine:InvokeMovenext(Ienumerator,intptr) 更新1: - 我将第三行更改为fileForm.AddBinaryData("file", File.ReadAllBytes(files[
22 2024-04-26
编程技术问答社区