Привет, ребята, я пытаюсь переключить камеру в соответствии с моим игровым представлением здесь, что я хотел, сначала мой MainCam1 переключится на cam2 после этого, когда настройка булавки завершена, тогда она должна вернуться в Maincam1, и это должно быть в цикле всякого действия сделан. буду благодарен за помощьКак снова переключить камеру в исходное положение?
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class PinCounter : MonoBehaviour {
public Text standingDisplay;
private GameManager gameManager;
private bool ballOutOfPlay = false;
private int lastStandingCount = -1;
private int lastSettledCount = 10;
private float lastChangeTime;
public Camera Maincam1;
public Camera cam2;
// Use this for initialization
void Start() {
Maincam1.enabled = true;
cam2.enabled = false;
gameManager = GameObject.FindObjectOfType<GameManager>();
}
// Update is called once per frame
void Update() {
standingDisplay.text = CountStanding().ToString();
if (ballOutOfPlay) {
UpdateStandingCountAndSettle();
standingDisplay.color = Color.red;
Maincam1.enabled = false;
cam2.enabled = true;
}
}
public void Reset() {
lastSettledCount = 10;
}
void OnTriggerExit (Collider collider) {
if (collider.gameObject.name == "Ball") {
ballOutOfPlay = true;
}
}
void UpdateStandingCountAndSettle() {
// Update the lastStandingCount
// Call PinsHaveSettled() when they have
int currentStanding = CountStanding();
cam2.enabled = false;
Maincam1.enabled = true;
if (currentStanding != lastStandingCount) {
lastChangeTime = Time.time;
lastStandingCount = currentStanding;
return;
}
float settleTime = 0.3f; // How long to wait to consider pins settled
if ((Time.time - lastChangeTime) > settleTime) { // If last change > 3s ago
PinsHaveSettled();
}
}
void PinsHaveSettled() {
int standing = CountStanding();
int pinFall = lastSettledCount - standing;
lastSettledCount = standing;
gameManager.Bowl (pinFall);
lastStandingCount = -1; // Indicates pins have settled, and ball not back in box
ballOutOfPlay = false;
standingDisplay.color = Color.green;
}
int CountStanding() {
int standing = 0;
foreach (Pin pin in GameObject.FindObjectsOfType<Pin>()) {
if (pin.IsStanding()) {
standing++;
}
}
return standing;
}
void LateUpdate(){
}
}
И в чем проблема? У вас есть какие-либо ошибки или ваш код не работает? –