【发布时间】:2018-02-16 16:43:23
【问题描述】:
我对编码完全陌生,所以任何帮助都会很有价值。
当对撞机进入立方体的盒子对撞机时,我试图让一个立方体(这是一个带有材料的进口 FBX)旋转。我一直在关注 2 个教程来帮助我前进。第一个是旋转立方体,我成功完成了,第二个是在进入“触发区”时为游戏添加声音/音乐,再次,这没问题。
我现在希望立方体在进入触发区域时旋转,所以我想我可以结合 2 并使其工作,但过了好一会儿我走到了死胡同。由于我缺乏理解,我不知道为什么当脚本添加到多维数据集时我所写的内容不起作用。
我遵循的立方体教程 - https://unity3d.com/learn/tutorials/topics/scripting/spinning-cube
我跟随的音乐教程 - https://unity3d.com/learn/tutorials/topics/audio/adding-music-your-game
以及我基于上述组合的旋转立方体的失败尝试 -
using UnityEngine;
using System.Collections;
public class TriggerSpinControl : MonoBehaviour
{
public float speed1 = 25f;
public float speed2 = 100f;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("TriggerZone"))
{
transform.Rotate(Vector3.forward, speed1 * Time.deltaTime);
}
}
void OnTriggerExit(Collider other)
{
if (other.CompareTag("TriggerZone"))
{
transform.Rotate(Vector3.forward, speed2 * Time.deltaTime);
}
}
}
任何帮助将不胜感激。
谢谢
根据下面 Rutter 的回答,我尝试创建一个脚本(基于来自其他问题和答案的各种信息),该脚本要求在 TriggerEnter 和 TriggerExit 上运行 2 个 Spin 脚本,但是因为我我仍在尝试弄清楚并理解我在做什么,它似乎不起作用。
旋转脚本不附加到游戏对象,而只是在 Assets 文件夹中。
using UnityEngine;
using System.Collections;
public class TriggerSpinControl : MonoBehaviour
{
private SpinFast spinfast;
private SpinSlow spinslow;
void OnTriggerEnter(Collider other)
{
if (other.CompareTag("TriggerZone"))
{
spinfast = GetComponent<SpinFast>();
}
}
void OnTriggerExit(Collider other)
{
if (other.CompareTag("TriggerZone"))
{
spinslow = GetComponent<SpinSlow>();
}
}
}
这可能只是一堆废话,但我希望我走在正确的轨道上。
谢谢
【问题讨论】:
-
使用 OnTriggerStay() :)