【发布时间】:2022-12-16 02:29:18
【问题描述】:
我有 2 个脚本,一个在播放器上:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerPositionCorrection : MonoBehaviour
{
Transform _playerTransform;
public float _xAxys;
public float _newXAxys;
public GameObject _changerPlayerPosition;
private void Start()
{
_playerTransform = GetComponent<Transform>();
}
private void OnTriggerEnter(Collider other)
{
if (other.tag == "ChangePlayerPosition")
{
float _newXAxys = this.GetComponent<ChangePositionOn>()._newPostion;
}
}
private void LateUpdate()
{
if (transform.position.z != 0)
{
transform.position = new Vector3(_xAxys, _playerTransform.position.y, _playerTransform.position.z);
}
}
第二个对象:
public class ChangePositionOn : MonoBehaviour
{
public float _newPostion = 5;
void Start()
{
}
// Update is called once per frame
void Update()
{
}
}
我使用 Unity 2022.1.19f1 和 C#。
谢谢你的医治, 迈克尔
我想在我的游戏中有几个对象,当玩家与它们发生碰撞时会改变 x 轴上的位置。
不幸的是,每次我收到此错误消息时:
NullReferenceException: Object reference not set to an instance of an object
PlayerPositionCorrection.OnTriggerEnter (UnityEngine.Collider other) (at Assets/Scripts/PlayerPositionCorrection.cs:23)
【问题讨论】:
-
许多拼写错误使它难以阅读:更正拼写错误。
-
该异常表明您尝试对其进行 GetComponent 操作的对象没有该组件。检查编辑器是否存在。
标签: c# unity3d nullreferenceexception