【发布时间】:2015-11-18 14:23:23
【问题描述】:
我一直在自学并在 youtube 上向 Jimmy Vegas 学习:https://www.youtube.com/channel/UCRMXHQ2rJ9_0CHS7mhL7erg
如果您还没有看过这些教程或不想看,他所做的其中一件事是创建一个小脚本,当玩家对撞机击中硬币时将其摧毁,但我的不起作用。下面的代码(格式有点错误,抱歉,无法正确格式化):
function OnCollisionEnter (collision : Collision) {
if(collision.gameObject.tag == "coinCollect") {
Destroy(this.gameObject);
}
}
我将脚本应用到一个预制件上并在一个小区域周围放置了一堆硬币,此外,我在标记为“coinCollect”的第一人称控制器中制作了一个胶囊对撞机,并勾选了“Is Trigger”
另外,我正在尝试制作一个传送器,将第一人称角色从一个传送器传送到另一个传送器。代码如下:
var warptarget001 : GameObject;
var warptarget002 : GameObject;
function OnTriggerEnter (col : Collider) {
if (col.gameObject.tag == "warp001") {
this.transform.position = warptarget002.position;
} else if (col.gameObject.tag == "warp002") {
this.transform.position = warptarget001.position;
}
}
我在这里有四个对象,两个经线垫和两个经线目标。两个变形垫分别标记为“warp001”和“warp002”,两个变形目标在代码中没有分配任何内容,而是通过将一个空对象拖放到脚本提供的序列化字段中来分配。两个垫子都有胶囊碰撞器未勾选“Is Trigger”,但无论是勾选还是未勾选,它都不起作用。
谁能告诉我我做错了什么?谢谢。
【问题讨论】:
-
技术说明:在 JavaScript 中,
==用于强制相等,===用于类型相等。但是,您显示的似乎不是 JavaScript,因为 JavaScript 没有明确的类型。这是 TypeScript、ActionScript 还是其他变体?因为用正确的语言标签标记你的问题会让你得到更好的答案。 -
我复制了 youtuber 的内容,warp 脚本可以在这里找到:weebly.com/uploads/4/7/6/0/47606749/warp_script.txt
-
@Mike'Pomax'Kamermans Javascript 是正确的标签。这是 Unity3d 的变体。 Unity3D 在其所有资源中都将其称为 javascript。
-
你试过没有
IsTrigger打勾的硬币吗? -
@Reasurria:通常称为unityscript,这也是stackoverflow标签的名称。
标签: unity3d unityscript