是否有一个简单的UnityScript代码来隐藏和取消隐藏多维数据集 或特定时间的任何其他游戏对象?
//make the object invisible
renderer.enabled = false;
// make the object visible
renderer.enabled = true;
// toggle object's visibility each second
function Update () {
// Find out whether current second is odd or even
var seconds : int = Time.time;
// Enable renderer accordingly
renderer.enabled = oddeven;
答案 0 :(得分:1)
你想要隐藏对象,触发等待N秒的协程,然后取消隐藏。
这是C#,转换为Javascript应该很简单,但我不认为JS使用 startCoroutine (文档中的This page解释了C#和Javascript版本之间的区别)。
public bool Hide = false;
void Update()
{
if (Hide && renderer.enabled) {
renderer.enabled = false;
Hide = false;
StartCoroutine("WaitUnhide");
}
}
IEnumerator WaitUnhide()
{
yield return (new WaitForSeconds(2));
renderer.enabled = true;
}
在此版本中,您可以从其他代码中设置'hide'变量以开始隐藏。 Hide && renderer.enabled
意味着你不能在旧的隐藏完成之前启动新的隐藏 - 这不是唯一的方法,但它避免了多个隐藏/取消隐藏重叠。
让它永远循环:
void Start()
{
StartCoroutine("HideUnhide");
}
IEnumerator HideUnhide()
{
while (true) {
yield return (new WaitForSeconds(2));
renderer.enabled = true;
yield return (new WaitForSeconds(2));
renderer.enabled = false;
}
}
答案 1 :(得分:1)
要显示/隐藏游戏对象,而不是使用render.enabled属性,您应该使用
// Deactivates the game object.
gameObject.SetActive (false);
可以找到更多详细信息here。
如正统所说,要定期调用此功能,startCoroutine是你的朋友。