Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 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 /
avatar image
0
Question by Matthew_Crown · May 28, 2013 at 02:35 PM · getcomponentfind-gameobjectcustom-function

GetComponent is missing custom function Call. Why?

OK strange issue this time. I am practicing with getcomponent and findwithtag (or find) commands, in order to apply a custom function created in the script of a first object (in this case a cube) to the second (a capsule object). Unfortunately this is not working and I don't know why, so I can't call my custom function from a script to another.

In my scene I have a capsule and a cube placed in its public gameobject slot and tagged "cubo"(the cube) and "capsula" (the capsule).

The custom function I created is called ChangeColorObj, it add a color to a GameObject selecting it randomly from a color array. Here u are the script of the cube object:

 using UnityEngine;
 using System.Collections;
 
 public class randomcolor : MonoBehaviour {
     public GameObject m_Cube = null;
     public int m_RandomEngine = 0;
     public Color[] m_ColorTank;
     public Color m_ColorStart;
         
     
     
     void Start () {
     
         ChangeColorObj (m_RandomEngine, m_Cube, m_ColorStart, m_ColorTank);
 
         
     }
     
     
     
         public void ChangeColorObj (int arandom, GameObject cb, Color prefab, Color [] list ) 
     {
         arandom = Random.Range (0, list.Length);
         prefab = list[arandom];
         cb.renderer.material.color = prefab;
     }
     
     
     void Update () {
     
     }
 }

and now the script of the capsule object:

 using UnityEngine;
 using System.Collections;
 
 public class capsularandom : MonoBehaviour {
     
     public GameObject m_Capsule = null;
     public int m_Capsualx = 0;
     public Color[] m_ColorTankX;
     public Color m_StartColorX;
     
     
     void Start () {
     
         
     //m_Capsula.GetComponent<randomcolor>().CambiaColorePerOBJ(m_Capsualx, m_Capsula, m_Inizialx, m_SerbatoioColorx);
     GameObject.Find("Capsule").GetComponent<randomcolor>().ChangeColorObj(m_Capsualx,GameObject.Find("Capsule"), m_StartColorX, m_ColorTankX);
     //GameObject.FindWithTag("capsula").SendMessage("CambiaColorePerOBJ",(m_Capsualx, GameObject.FindWithTag("capsula"), m_Inizialx, m_SerbatoioColorx));
     
     }
     
 
     void Update () {
     
     }
 }


notice that there are 2 commented strings: they are other attempts that doesn't works too. The scripts are without errors, because if I press f8, all seems to be ok. But only the cube change its color, instead the capsule still remains gray. :(

Anyone knows why?

Thanks for the attention

regards

Matthew

Comment
Add comment · Show 3
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 ExTheSea · May 28, 2013 at 04:21 PM 0
Share

I think you first have to cast the Component to a script:

  randomcolor randomcolorscript = GameObject.Find("Capsule").GetComponent<randomcolor>();
  randomcolorscript.ChangeColorObj(m_Capsualx,GameObject.Find("Capsule"), m_StartColorX, m_ColorTankX);
avatar image Matthew_Crown · May 28, 2013 at 07:37 PM -1
Share

Coluld you, ExTheSea, be a little more precise, please? if is not a problem for you? I can't understandwhat u have written! :(

avatar image Benproductions1 · May 29, 2013 at 02:15 AM 0
Share

@ExTheSea has the answer

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by PAHeartBeat · May 29, 2013 at 03:38 AM

Try this,

 public class capsularandom : MonoBehaviour {
  
     public GameObject m_Capsule = null;
     public int m_Capsualx = 0;
     public Color[] m_ColorTankX;
     public Color m_StartColorX;
  
  
     void Start () {
         m_Capsule = GameObject.Find("Capsule");
         m_Capsule.GetComponent<randomcolor>().ChangeColorObj(m_Capsualx,m_Capsule, m_StartColorX, m_ColorTankX);
     }
  
     void Update () {
     }
 }

if you need more accurate solution please randomcolor script also.

Comment
Add comment · Show 1 · Share
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 Matthew_Crown · May 29, 2013 at 02:13 PM 0
Share

still doesn't works! :(

avatar image
0

Answer by Matthew_Crown · May 29, 2013 at 03:10 PM

Ok after days and days I discover the problem.

In the second script I called the object target (the capsule) instead to call the object that keep the methond, namely: the cube.

here u are:

GameObject.FindWithTag("cubo").GetComponent().ChangeColorObj(m_Capsualx,GameObject.FindWithTag("capsula"), m_StartColorX, m_ColorTankX);

thanks a lot for the attention, anyway!

matthew

Comment
Add comment · Share
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

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

16 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

Related Questions

Multiple Cars not working 1 Answer

How to access .int variable? 1 Answer

UnityEngine.Input.GetMouseButton(1)) issue 1 Answer

Comparing variable from another script, help? 1 Answer

GetComponent help needed CSharp 1 Answer


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