我正在尝试使用主摄像机位置进行显示和消失。例如,如果camera.main.transform.position = (0,2,0);
使对象出现,否则使其消失。
在这种情况下,对象是基本的Cube
。我开始使用setActive
函数,但事实证明,一旦对特定对象的setActive
函数运行了false, Update
,就无法运行。我已经添加了我正在使用的脚本:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class backandforth : MonoBehaviour
{
public float speed = 2.5f;
GameObject targetObject;
// Use this for initialization
void Start()
{
targetObject = GameObject.Find("Cube");
targetObject.SetActive(false);
}
// Update is called once per frame
void Update()
{
//move the cube from (0,0,0)
if (Camera.main.transform.position== new Vector3(0, 2, 0)) {
transform.position = new Vector3(Mathf.PingPong(Time.time * speed, 5), transform.position.y, transform.position.z);
transform.Rotate(0, 0, 5);
}
else
{
targetObject.SetActive(true);
transform.position = new Vector3(Mathf.PingPong(Time.time * speed, 5), transform.position.y, transform.position.z);
transform.Rotate(0, 0, 100);
//gameObject.SetActive(false);
}
}
}
这是设置的层次结构视图,用于使GameObject定义清晰可见。
关于如何执行此操作的任何建议?谢谢!
答案 0 :(得分:0)
如果我理解正确,则更新方法应如下:
void Update()
{
if (Camera.main.transform.position== new Vector3(0, 2, 0)) {
//if the camera.main.transform.position = (0,2,0); make the object appear
targetObject.SetActive(true);
}
else
{
//otherwise make it disappear
targetObject.SetActive(false);
}
}