问题标签 [unityscript]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
unity3d - 变换游戏对象
我正在尝试将对象移动到存储在数组中的多维数据集。
数组中填充了带有标签的游戏对象。
我可以让对象立即移动到立方体,但不像它走向它那样缓慢。
这是我的脚本:
我也试过这个Time.deltaTime
东西,但它会传送到远离立方体的地方。
而且只是将其转换为 Transform Array 也无法解决:( 有什么想法可以使它工作吗?
非常感谢您的帮助:) 提前致谢!
unity3d - 幅度位置
玩家和敌人之间有一个与 distance.magnitude 成比例的立方体。我想将这个 Scaling Cube 设置在英雄和敌人之间。那么是否可以使用两个对象之间的幅度作为位置。
这是我的脚本:
我使用 heDistance.magnitude/2 来获得距离的中间。非常感谢您的帮助。提前致谢!:)
javascript - 自定义鼠标光标 + IE 问题
我正在开发一个具有以下属性的项目:
- jQuery 驱动页面
unityobject.js
使用 jQuery 和(根据 Unity 的指令)嵌入到页面的 Unity 3d 播放器- 当用户的光标在 Unity 的画布区域内时,Unity 具有自定义鼠标光标
问题: Unity 捕获鼠标光标,但在包含它的网页变为非活动状态时不会释放它。这意味着如果用户切换到不同的选项卡(或打开一个新窗口),当用户将鼠标悬停在 Unity 所在的区域上时,鼠标光标就会消失。这是 Unity 3d 论坛中描述的统一错误:http: //forum.unity3d.com/threads/4565-Unity-Web-player-issue-mouse-hidden-for-all-new-windows
不,它仍然没有在最新版本的 Unity Web 客户端中修复。
为了缓解这个问题,我们决定让 Unity 通过 Javascript 监听当前浏览器窗口的状态,并根据接收到的状态捕获/释放自定义鼠标光标。但还有其他问题:
Unity 如何接收窗口状态:
我试过以下方法...
方法一:将事件绑定到“window”对象
问题:在 IE7 和 IE8 中,新的浏览器选项卡不会被视为不同的“窗口”,因此代码对 Unity 没有影响。它仅在打开真正单独的浏览器窗口时才有效。
方法2:将事件绑定到“文档”对象
像这样:$( document ).live(...);
问题: $( document )
在 jQuery 中实际上什么也没做。发现了艰难的方式。
来源:http: //forum.jquery.com/topic/should-document-live-map-to-document-bind-window-too
方法3:将事件绑定到<body>
对象
像这样:$( 'body' ).live(...);
问题:不知何故,IE 无法识别 Unity 对象是 DOM 的一部分(尽管使用了该.live()
方法)。因此,每次用户单击嵌入式 Unity 播放器时,浏览器都会blur
向 Unity 发送一个事件,并且鼠标光标会被锁定(单击 Unity 时会console.log()
打印出来inactive
)。并且在某些情况下,它甚至不会释放鼠标光标,导致整个浏览器对鼠标事件没有响应;释放光标的唯一方法是在浏览器窗口之外单击并再次单击浏览器)。
我尝试过的其他事情:
问题: .addEventListener()
这些元素在 IE 中根本不支持方法!嘎!
奖励:
您中观察力越强的人可能会说:“嘿,为什么不检测 Unity 对象本身上的鼠标单击事件并忽略该blur
事件.live()
或.bind()
事件。” 试过了。IE也不喜欢它。它完全忽略该事件并说这些事件不适用于该对象。
所以我的 Javascript 专家。我不知道如何以一种优雅的方式最好地解决这个问题。任何指针将不胜感激。
animation - 本地位置动画
我正在努力做到这一点:
角色走到一个大板条箱前,玩家按下e键并开始播放动画,角色爬上板条箱。(全部以第一人称视角)。
到目前为止,我在 Unity 中使用普通的“第一人称控制器”预制件进行了尝试。
到目前为止我的代码:
但是,当我在 FPC 上使用它时,它总是会从创建动画的位置开始播放。我还尝试创建一个空的游戏对象,将 FPC 放在那里。给出相同的效果。
最近,我尝试仅对 FPC 的图形进行动画处理。这似乎可行,但由于角色控制器本身没有动画,所以它停留在地面上。所以整个 FPC 将不再工作。
无论如何我可以让这个动画在玩家当时所在的本地位置上播放吗?或者你能想到任何其他合乎逻辑的抓取和攀爬解决方案吗?
ios - iOS没有加载下一个级别
我知道在 Unity 中具有较大的初始级别会导致 iPhone/iPad 在加载完成之前关闭应用程序。我认为,解决方案将是一个产生 1 或 2 帧的加载级别,然后继续加载下一个级别。
由于某种原因,这似乎不起作用。两个场景都在 Unity 的构建窗口中正确设置,并且在 Xcode 中没有出现错误。
有人有什么建议可以说服我吗?
unity3d - 如何获得鼠标滚动输入?
我正在尝试在 Unity3D 中进行简单的武器更改。就我所见,最好的方法是使用鼠标滚轮。
我用谷歌搜索了如何做到这一点,发现我必须使用 Input.GetAxis("Mouse ScrollWheel"); 我使用这段代码并打印它。我仍然总是得到 0 的值。有什么想法吗?我只需要先解决如何获得价值,剩下的自己想办法。
代码思路:
unity3d - 如何在找到游戏对象之前添加延迟
我正在尝试制作一个游戏,您可以在其中刺伤敌人,敌人挣扎大约一秒钟并死亡。(布娃娃);
我认为最好只展示我的脚本,你知道我的意思:
在触发输入脚本中:
并在更新功能中:
现在,当我的刀进入敌人的碰撞中时,敌人立即倒在地上。我试着把:
在更新函数中if(StopBleeding > 50)
。
如果我这样做,我会收到 Null reverance 异常的错误,因为脚本可以找到敌人。虽然它可以在触发器中输入。
基本上我的问题是:有没有办法解决这个错误,让它延迟 50 帧(其余的都在StopBleeding
工作中)?
或者有什么办法可以在布娃娃被激活之前简单地延迟一下?
提前致谢
unity3d - 跳过添加到数组
我知道通过 continue 你可以跳过脚本的某些部分,但是有没有办法用数组做同样的事情?我希望每个对象都存储在一个数组中,而不是佩戴此脚本的对象(也具有相同的标签)。
示例:
敌人 1 有一个包含敌人 2、3、4 的数组。
敌人 2 有一个包含敌人 1,3,4 的数组。
敌人 3 有一个包含敌人 1、2、4 的数组。
敌人 4 有一个包含敌人 1、2、3 的数组。
unity3d - 做一个高分表
我正在尝试为我的 Arcade spaceshooter 游戏创建一个 Highscore 表,我用变量做这个表,所以不需要数据库来存储它们将是临时的分数
我正在使用 Unity 顺便说一句,我试图访问包含玩家当前分数的 Scorescript,问题是它总是说它找不到脚本的组件,对象标签名称是正确的,脚本名称也是如此,这里是得分脚本:
如果有人能帮助完成这个特定的部分,我将非常感激。
unity3d - 朝着一个目标前进
使对象移动到目标的其他脚本是什么?现在我正在使用该Vector3.Lerp
方法。这是可行的,但是移动的游戏对象越接近其目标就会减慢速度。我不会发生这种情况。它必须在不减速的情况下直接向目标移动。
帮助表示赞赏。