尝试使一个对象可点击,将其变为“非活动”,将另一个对象变为活动。不知道出了什么问题

问题描述 投票:0回答:1

嗯。 我正在使用 C# 在 Unity 中构建一个 3D 点单击切片作为项目。 它并不意味着复杂,相反,我已使其尽可能简单,尝试使其易于我自己管理。 我正在努力处理这个脚本,尝试使一个对象(稍后将成为一个动画模型)可交互。 这个想法是,您单击该对象,该对象将变为非活动状态(也称为消失),而另一个模型会出现在其他地方。 然后相反,当您单击新对象时 但是,该脚本无法正常工作,我不能 100% 确定我做错了什么。

我的基本脚本:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ModelSpawnDespawn : MonoBehaviour
{
    private GameObject SittingGuyc;
    private GameObject StandingGuyc;

    private void OnMouseUpAsButton()
    {
        if(isActiveAndEnabled)
        {
            SittingGuyc.SetActive(false);
            StandingGuyc.SetActive(true);
        }
    }
}

我对编程非常陌生,所以这并不是很复杂,我确信这只是我错过的一些基本知识。 但我似乎找不到我做错了什么,并且希望得到一个好的社区的一些可靠的建议。

c# unity-game-engine model 3d interaction
1个回答
0
投票

您的数据 SittingGuyc 、 StandingGuyc 引用为 Null,您尝试激活 Null 引用。

` 使用unityEngine;

public class ModelSpawnDespawn : MonoBehaviour
{
    private GameObject SittingGuyc;
    private GameObject StandingGuyc;

    private void Start()
    {
        SittingGuyc = Gameobject.Find("Sittingguyc");
        StandingGuyc = Gameobject.Find("StandingGuyc ");
    }

    private void OnMouseUpAsButton()
    {
        if(this.gameobject.activeSelf)
        {
            SittingGuyc.SetActive(false);
            StandingGuyc.SetActive(true);
        }
    }
}

`

© www.soinside.com 2019 - 2024. All rights reserved.