Это сценарий для таблицы:
Код: Выделить всё
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class TriggerTable : MonoBehaviour
{
[SerializeField] private bool isHidingTable;
[SerializeField] private bool canHideTable;
[SerializeField] private Transform cameraTablePos;
[SerializeField] private new Transform camera;
[SerializeField] private GameObject player;
[SerializeField] private Camera playerCamera;
[SerializeField] private Camera tableCamera;
void Start()
{
cameraTablePos = GameObject.Find("TablePosition").transform;
player = GameObject.Find("Player");
playerCamera = GameObject.Find("Main Camera").GetComponent();
tableCamera = GameObject.Find("TableCamera").GetComponent();
playerCamera.enabled = true;
tableCamera.enabled = false;
tableCamera.transform.SetParent(null);
}
void switchToTableCam()
{
player.SetActive(false);
playerCamera.enabled = false;
tableCamera.enabled = true;
}
void switchToPlayerCam()
{
player.SetActive(true);
tableCamera.enabled = false;
playerCamera.enabled = true;
}
private void OnTriggerEnter(Collider collision)
{
if (collision.CompareTag("Player"))
{
canHideTable = true;
}
}
private void OnTriggerExit(Collider collision)
{
if (collision.CompareTag("Player"))
{
canHideTable = false;
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.E) && canHideTable)
{
isHidingTable = !isHidingTable;
}
if (isHidingTable)
{
tableCamera.transform.SetParent(null);
camera.parent = cameraTablePos;
camera.position = cameraTablePos.position;
switchToTableCam();
}
else
{
switchToPlayerCam();
}
}
}
Код: Выделить всё
using System;
using System.Collections;
using System.Collections.Generic;
using Unity.VisualScripting;
using UnityEngine;
using UnityEngine.UI;
public class TriggerLockerDoor : MonoBehaviour
{
[SerializeField] private bool isHidingLocker;
[SerializeField] private bool canHideLocker;
[SerializeField] private Transform cameraLockerPos;
[SerializeField] private new Transform camera;
[SerializeField] private GameObject player;
[SerializeField] private Camera playerCamera;
[SerializeField] private Camera lockerCamera;
void Start()
{
cameraLockerPos = GameObject.Find("LockerPosition").transform;
player = GameObject.Find("Player");
playerCamera = GameObject.Find("Main Camera").GetComponent();
lockerCamera = GameObject.Find("LockerCamera").GetComponent();
playerCamera.enabled = true;
lockerCamera.enabled = false;
lockerCamera.transform.SetParent(null);
}
void switchToLockerCam()
{
playerCamera.enabled = false;
lockerCamera.enabled = true;
}
private void OnTriggerEnter(Collider collision)
{
if (collision.CompareTag("Player"))
{
canHideLocker = true;
}
}
private void OnTriggerExit(Collider collision)
{
if (collision.CompareTag("Player"))
{
canHideLocker = false;
}
}
void Update()
{
if (Input.GetKeyDown(KeyCode.E) && canHideLocker)
{
isHidingLocker = !isHidingLocker;
}
if (isHidingLocker)
{
lockerCamera.transform.SetParent(null);
camera.parent = cameraLockerPos;
player.SetActive(false);
camera.position = cameraLockerPos.position;
switchToLockerCam();
}
else
{
player.SetActive(true);
lockerCamera.enabled = false;
playerCamera.enabled = true;
}
}
}
[Ссылка на видео моего игрового пространства1
Подробнее здесь: https://stackoverflow.com/questions/791 ... ain-script
Мобильная версия