在此处输入图像描述我可以通过一个简单的 transform.position 调用来设置我的播放器的 Y 轴,在一个步骤中,所有这些都在 onTriggerEnter 方法中,但动作只有一个步骤,因此是生涩的。现在我试图通过将 transform.position 函数放在同一个类中的 Update 方法中来使运动平滑。但是,似乎无法在 Update 函数中访问由 onTriggerEnter 方法确定/更新的位置值。如果我将 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;
}
}