Я создал этот код в Unity, чтобы перемещать объект в моей сцене только в случае превышения порогового значения, но он не устанавливает мой объект отслеживания и продолжает привязываться к нему. Моим объектом слежения было твердое тело, и к нему использовались Interpolate и Continuous. Может ли кто-нибудь помочь мне понять, почему он не остается на месте? Я перепробовал все
`
Я создал этот код в Unity, чтобы перемещать объект в моей сцене только в случае превышения порогового значения, но он не устанавливает мой объект отслеживания и продолжает привязываться к нему. Моим объектом слежения было твердое тело, и к нему использовались Interpolate и Continuous. Может ли кто-нибудь помочь мне понять, почему он не остается на месте? Я перепробовал все ` [code]Using System.Collections; using System.Collections.Generic; using UnityEngine;
private Vector3 GetTrackingPosition() { if (activeCarController != null && activeCarController.PlayerInCar()) { // Player is in a car, track the car's position isTrackingCar = activeCarController.PlayerInCar(); trackingObject = activeCarController.gameObject; return activeCarController.transform.position; } else { // Player is not in a car, track player's position isTrackingCar = false; trackingObject = player; return player. transform.p osition; } }
private void ApplyFloatingOriginOffset(Vector3 offset) { if (movingScene != MoveingScene.Idele) return;
movingScene = MoveingScene.IsMoving;
// --- Disable physics while we shift --- if (trackingObject != null) { var rb = trackingObject.GetComponent(); if (rb != null) rb.isKinematic = true; }
// --- Shift all objects --- foreach (GameObject obj in objects)a if (obj == null) continue; obj. transform.position -= offset; }
// --- Also shift any dynamically tracked objects not in the list --- if (trackingObject != null && !objects.Contains(trackingObject)) { trackingObject.transform.position -= offset; }
// --- Re-enable physics --- if (trackingObject != null) { var rb = trackingObject.GetComponent(); if (rb != null) rb.isKinematic = false; }
// --- Reset the tracking origin --- currentTrackingPosition = Vector3.zero;
movingScene = MoveingScene.StopMoving; }
// Debug visualization private void OnDrawGizmos() { if (!Application.isPlaying) return;