GOOGLE ADS

Samstag, 30. April 2022

GetKeyDown sendet mehrere Ausgaben

Insbesondere sendet es so viele Ausgaben, wie Objekte mit dem Code darin vorhanden sind, mit dem sie interagieren können, selbst wenn ich E drücke, wenn ich nichts anschaue. Ich wollte ein Inventarsystem erstellen, aber dies bewirkt, dass mit allen Objekten, die diesen Code haben, interagiert wird. Ich habe alle Skripte beigefügt, die ich für dieses System verwende, falls das helfen kann. Ich weiß wirklich nicht, was ich falsch gemacht habe

der Interaktionscode:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.Events;
using System;
public class Interactable: MonoBehaviour
{
public LayerMask interactableLayerMask;
//ITEM VARIABLE
public Item item;
//PICK UP RADIUS
public float radius = 4f;
public void Interact()
{
Debug.Log("Interacted with " + transform.name);
PickUp();
}
//PICK UP INTERACTION
void PickUp()
{
Debug.Log("Picking up " + item.name);
bool wasPickedUp = Inventory.instance.Add(item);
if (wasPickedUp)
Destroy(gameObject);
}
//INTERACTION
void Update()
{
if (Input.GetKeyDown(KeyCode.E))
{
Debug.Log("Added item -----------------------------------------");
RaycastHit hit;
if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hit, radius))
{
Interactable interactable = hit.collider.GetComponent<Interactable>();
if (interactable!= null)
{
Interact();
}
} else
{
Debug.Log("Nothing");
}
}
}
}

der Inventarcode:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Inventory: MonoBehaviour
{
#region Singleton
public static Inventory instance;
void Awake()
{
if (instance!= null)
{
Debug.LogWarning("More than one instance of Inventory found!");
return;
}
instance = this;
}

Keine Kommentare:

Kommentar veröffentlichen

Warum werden SCHED_FIFO-Threads derselben physischen CPU zugewiesen, obwohl CPUs im Leerlauf verfügbar sind?

Lösung des Problems Wenn ich das richtig verstehe, versuchen Sie, SCHED_FIFO mit aktiviertem Hyperthreading ("HT") zu verwenden, ...