введите описание изображения здесь Я могу установить ось Y моего плеера с помощью простого вызова transform.position, за один шаг, все в методе onTriggerEnter, но движение имеет один шаг и поэтому отрывистый. Теперь я пытаюсь сделать движение плавным, поместив функцию transform.position в метод Update в том же классе. Однако, похоже, что значения положения, определенные / обновленные методом onTriggerEnter, недоступны в функции Update. Если я печатаю значения x и z в консоль, они содержат ожидаемые значения из функции onTriggerEnter, но кажутся равными 0, когда я печатаю в консоль из функции обновления. Есть идеи, что я делаю не так? Я бы никогда не назвал себя программистом, поэтому предположим худшее :-) Заранее спасибо за любую помощь!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Step1SetElevation : MonoBehaviour
{
private float moveSpeed = 3f;
private float currX = 0.0f;
private float currZ = 0.0f;
private Vector3 currentPos;
private GameObject player;
private Collider other;
void OnTriggerEnter(Collider other)
{
player = GameObject.FindWithTag("Player");
currentPos = GameObject.Find("PlayerController").transform.position;
currX = currentPos.x;
currZ = currentPos.z;
}
void Update()
{
player = GameObject.FindWithTag("Player");
player.transform.position = new Vector3(currX, 3.4f, currZ) * Time.deltaTime * moveSpeed;
}
}