Сначала у меня была общедоступная переменная под названием CinemachineVirtualCamera, и я ссылался на свой игровой объект с помощью CineMachine virtualCamera в эту переменную.
Но выдает такую ошибку:
Код: Выделить всё
Severity Code Description Project File Line Suppression State Warning CS8032 An instance of analyzer Unity.Properties.SourceGenerator.PropertyBagGenerator cannot be created from C:\Program Files\Unity\Hub\Editor\2022.3.25f1\Editor\Data\Tools\Unity.SourceGenerators\Unity.Properties.SourceGenerator.dll: Could not load file or assembly 'System.Runtime, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies. Het systeem kan het opgegeven bestand niet vinden.. Assembly-CSharp C:\Program Files\Unity\Hub\Editor\2022.3.25f1\Editor\Data\Tools\Unity.SourceGenerators\Unity.Properties.SourceGenerator.dll 1 Active
Но когда я сослался на переменную через метод start с помощью getcomComponentinchildren () Я не получил ошибку, но сценарий не сделал того, что я хотел.
Мне следует просто игнорировать предупреждение или я делаю что-то не так?Это весь мой сценарий:
Код: Выделить всё
[Header("Bools")]
public bool locked;
[Header("Lock on settings")]
public LayerMask enemyLayer;
public float radius;
public float maxAngle;
//private void Start()
//{
// enemyCamera = GetComponentInChildren();
//}
public void Update()
{
Inputs();
PlayerLookAt();
}
void Inputs()
{
if (Input.GetKeyDown(KeyCode.Mouse1) && !locked)
{
if (enemyCamera == null)
{
print("Waarom werk jij niet");
}
enemy = CalcEnemyLock();
enemyCamera.LookAt = enemy;
SetCamera();
}
else if (Input.GetKeyDown(KeyCode.Mouse1) && locked)
{
locked = false;
SetCamera();
}
}
Transform CalcEnemyLock()
{
Collider[] nearbyEnemy = Physics.OverlapSphere(transform.position, radius, enemyLayer);
float closestAngle = maxAngle;
Transform closestTarget = null;
if(nearbyEnemy.Length
Подробнее здесь: [url]https://stackoverflow.com/questions/78462873/cant-find-unity-cinemachine-virtual-camera-reference-even-though-it-is-reference[/url]