[Unity] 카메라에서 보이지 않을 때의 판정법
4814 단어 Unity
그래서 찾아봤는데 의외로 간단해서 썼어요.
컨디션
Unity2017.1.0f3
서법
렌더기(카메라)에서OnBecameVisible()
보는 순간OnBecameInvisible()
보이지 않는 순간OnWillRenderObject()
표시되는 경우Camera.current.name
카메라의 객체 이름
라고 판정했다.
어느 쪽이든 Sceneview에서 판정을 받았기 때문에 Sceneview로 확인하려면OnWillRenderObject()
를 사용하여 Camera.current.name
에서'ScenneCamera'를 판정해야 한다.1
판정 쪽에서는 렌더러가 부착되지 않았다고 판정하지 않은 것 같다.2
예제
사용OnBecameInvisible()
의 예
LoockChange.cs
using UnityEngine;
public class LookChange : MonoBehaviour { //MonoBehaviourは呼ばれていないといけない
private bool flag = false;
void OnBecameInvisible() // カメラから見えなくなった時
{
if(flag==true) // 偶数回に見えなくなったときの処理
{
}
else // 最初、奇数回に見えなくなったときの処理
{
}
flag = !flag;
}
}
예를 들어, 카메라에 표시되지 않을 때마다 색상이 변경되는 경우
LoockChange.cs
using UnityEngine;
public class LookChange : MonoBehaviour {
private bool fMaterial = false;
[SerializeField]
private Material mat01;
[SerializeField]
private Material mat02;
void OnBecameInvisible()
{
if(fMaterial==true)
{
this.GetComponent<Renderer>().material=mat01;
}
else
{
this.GetComponent<Renderer>().material=mat02;
}
fMaterial = !fMaterial;
}
}
객체가 보이지 않을 때마다 색상이 변경됩니다.
참고 자료
카메라 촬영 기간에만 처리. - 초현실주의 블로그. ↩
[Unity] 카메라에 대상이 비치는지 - 수세미외 노트. ↩
Reference
이 문제에 관하여([Unity] 카메라에서 보이지 않을 때의 판정법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Teaki/items/5e8f74ac3685d4937a5b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
렌더기(카메라)에서
OnBecameVisible()
보는 순간OnBecameInvisible()
보이지 않는 순간OnWillRenderObject()
표시되는 경우Camera.current.name
카메라의 객체 이름라고 판정했다.
어느 쪽이든 Sceneview에서 판정을 받았기 때문에 Sceneview로 확인하려면
OnWillRenderObject()
를 사용하여 Camera.current.name
에서'ScenneCamera'를 판정해야 한다.1 판정 쪽에서는 렌더러가 부착되지 않았다고 판정하지 않은 것 같다.2
예제
사용OnBecameInvisible()
의 예
LoockChange.cs
using UnityEngine;
public class LookChange : MonoBehaviour { //MonoBehaviourは呼ばれていないといけない
private bool flag = false;
void OnBecameInvisible() // カメラから見えなくなった時
{
if(flag==true) // 偶数回に見えなくなったときの処理
{
}
else // 最初、奇数回に見えなくなったときの処理
{
}
flag = !flag;
}
}
예를 들어, 카메라에 표시되지 않을 때마다 색상이 변경되는 경우
LoockChange.cs
using UnityEngine;
public class LookChange : MonoBehaviour {
private bool fMaterial = false;
[SerializeField]
private Material mat01;
[SerializeField]
private Material mat02;
void OnBecameInvisible()
{
if(fMaterial==true)
{
this.GetComponent<Renderer>().material=mat01;
}
else
{
this.GetComponent<Renderer>().material=mat02;
}
fMaterial = !fMaterial;
}
}
객체가 보이지 않을 때마다 색상이 변경됩니다.
참고 자료
카메라 촬영 기간에만 처리. - 초현실주의 블로그. ↩
[Unity] 카메라에 대상이 비치는지 - 수세미외 노트. ↩
Reference
이 문제에 관하여([Unity] 카메라에서 보이지 않을 때의 판정법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Teaki/items/5e8f74ac3685d4937a5b
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
using UnityEngine;
public class LookChange : MonoBehaviour { //MonoBehaviourは呼ばれていないといけない
private bool flag = false;
void OnBecameInvisible() // カメラから見えなくなった時
{
if(flag==true) // 偶数回に見えなくなったときの処理
{
}
else // 最初、奇数回に見えなくなったときの処理
{
}
flag = !flag;
}
}
using UnityEngine;
public class LookChange : MonoBehaviour {
private bool fMaterial = false;
[SerializeField]
private Material mat01;
[SerializeField]
private Material mat02;
void OnBecameInvisible()
{
if(fMaterial==true)
{
this.GetComponent<Renderer>().material=mat01;
}
else
{
this.GetComponent<Renderer>().material=mat02;
}
fMaterial = !fMaterial;
}
}
Reference
이 문제에 관하여([Unity] 카메라에서 보이지 않을 때의 판정법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Teaki/items/5e8f74ac3685d4937a5b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)