Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
  • Help Room /
avatar image
0
Question by CandyCoatedGames · Dec 23, 2019 at 03:58 PM · c#if-statements

can't check if my NPC has a specific script attached

I am making a game and trying to add dialogue options to some of the NPCs. I have it set so that when the first dialogue (which is a pre-made string array) is done, I want it to check and see if the Choices script is attached to the NPC. and if it the NPC has the Choices script attached to it, it activates a panel with buttons that play the next bit of dialogue. If the NPC doesn't have the script, it closes the dialogue box at the end of the first bit of dialogue. It's probably a bit clunky, I know, but it's my first real game. Here's the problem. I can't figure out how to look for an attached script in the if statement. I've been looking through and trying everything I can find, but it always comes back as false, even when the NPC has the Choices script. No solution I can find seems to do the trick. I don't know a lot about coding, but this feels like one of those things that probably has a simple solution. I just can't seem to find it :<

here's the Script. The if statement on line 74 (where it says "if(script != null)" in the NextLine function is the one that keeps coming up false even when the script is there. :

 using System.Collections;
 using System.Collections.Generic;
 using System;
 using UnityEngine;
 using UnityEngine.UI;
 
 public class Dialogue : MonoBehaviour
 {
 
     [SerializeField]
     public UnityEngine.UI.Text dialogueText;
     [SerializeField]
     private GameObject dialoguePanel;
     [SerializeField]
     //public GameObject choicePanel;
     private string[] dialogue;
     private int dialogueIndex;
     private NPC npcScript;
     public bool inRange;
     
 
     //public GameObject ChoiceManager;
     
 
     private bool neverDone;
 
     public void Awake()
     {
         //Debug.Log("index referenced? " + ( != null), this);
     }
 
     public void Start()
     {
         neverDone = true;
         inRange = false;
     }
 
     //void OnCollisionStay(Collision collision)
     //{
     //    if (collision.gameObject.tag == "ChoiceNPC")
     //    {
     //        inRange = true;
     //        Debug.Log("choices availiable");
     //    }
     //    else
     //   {
     //        Debug.Log("choices not availiable");
     //        return;
     //    }
     //}
 
 
     public void StartDialogue(string[] dialogue)
     {
         dialogueIndex = 0;
         this.dialogue = dialogue;
         dialoguePanel.SetActive(true);
         dialogueText.text = dialogue[dialogueIndex];
     }
 
     public void NextLine()
     {
         Choices script = gameObject.GetComponent<Choices>();
 
         dialogueIndex = Mathf.Min(dialogueIndex + 1, this.dialogue.Length);
         if (dialogueIndex >= dialogue.Length)
         {
             if (neverDone)
             {
                 //if ((gameObject.GetComponents<Choices>().Length != 0))
                 //if (((gameObject.GetComponent("Choices") as Choices) != null))
                 //if (FindObjectOfType<NPC>().ChoiceManager == null)
                 //if (FindObjectOfType<NPC>().ChoiceManager.gameObject.activeSelf)
                 if(script != null)
                 {
                     //Debug.Log("choices are availiable");
                     ResetDialogue();
                     neverDone = false;
                     Debug.Log("Choices are availiable");
                     gameObject.GetComponent<Choices>().choicePanel.SetActive(true);
                     //Debug.Log("it was Diallogue line 59");
                     //ResetDialogue();
                     //return;
 
                 }
                 else
                 {
                     Debug.Log("choices arent availiale");
                     ResetDialogue();
                     neverDone = false;
                     return;
                     //Debug.Log("choice manager found");
                     //ResetDialogue();
                     //neverDone = false;
                     //FindObjectOfType<NPC>().choicePanel.SetActive(true);
 
 
                 }
             }
             else
             {
                 Debug.Log("it was Diallogue line 79");
                 ResetDialogue();
                 neverDone = true;
                 return;
             }
 
         }
         else
         {
             dialogueText.text = dialogue[dialogueIndex];
         }
     }
 
 
     public void PreviousLine()
     {
         if (dialogueIndex == 0)
         {
             return;
         }
         dialogueIndex = Mathf.Max(dialogueIndex - 1, 0);
         dialogueText.text = dialogue[dialogueIndex];
     }
 
     public void ResetDialogue()
     {
         dialogue = null;
         dialogueText.text = "";
         dialoguePanel.SetActive(false);
         dialogueIndex = 0;
     }
 
 
 }

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Larry-Dietz · Dec 23, 2019 at 06:41 PM 0
Share

At just a quick look, assu$$anonymous$$g the script is named Choices, your first commented IF statement SHOULD work, as far as I can see. It would get a list of all Choices scripts attached to the gameobject, and if the list length >0 (has at least one) then it would return true. Assu$$anonymous$$g that this dialog script is attached to the same gameobject as the choices script.

What are you getting when this if statement is used?

Just to help, try adding Debug.Log("Number of Choices found: " + gameObject.GetComponents<Choices>().Length); right after the if(NeverDone) so you can see what this is returning.

0 Replies

· Add your reply
  • Sort: 

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

750 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

C# Greater Than or Equal To 1 Answer

How can i make an if statement fire only when the player doesn't hit a button? 1 Answer

AudioSource in Update 1 Answer

Project Spark to C# - Started To, While, and No Longer 1 Answer

Break the loop when there are no more questions 0 Answers


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges