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 dillon_kneeland · Jul 09, 2014 at 05:22 PM · classcustom class

Getting a custom class to contain a certain script.

I have a custom class called block which looks like this:


 [System.Serializable]
     public class Block
     {
         public string name;
         public Texture blockTex;
         public GameObject block;
         public int SpawnChance;
     }



I want this class to contain an already made script called canRender which does exactly what you would think it does:


 using UnityEngine;
 using System.Collections;
 
 public class canRender : MonoBehaviour {
     
     // Update is called once per frame
     void OnBecameVisible() {
         enabled = true;
     }
 
     void OnBecameInvisible()
     {
         enabled = false;
     }
 }



Any help is appreciated thanks :)

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

1 Reply

· Add your reply
  • Sort: 
avatar image
1
Best Answer

Answer by robertbu · Jul 09, 2014 at 05:56 PM

Given that Block class is not derived from MonoBehaviour, I don't know how you can directly structure this. 'canRender' only exists if attached to a game object. Also the 'enabled' flag is inherited from MonoBehaviour which inherits it from Behaviour. The Block class will not inherit and enabled flag.

Each block could have a 'canRender' component and then you could access the 'canRender' component from within the Block class to get access to the state of the 'enabled' flag.

Comment
Add comment · Show 3 · 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 dillon_kneeland · Jul 09, 2014 at 07:43 PM 0
Share

I'm just trying to get around having to place this script on every block manually :p

avatar image robertbu · Jul 09, 2014 at 09:43 PM 0
Share

I don't know the rest of your logic, but you have a number of choices:

  • Put the 'canRender' script on a prefab and instantiate all of your blocks at runtime.

  • Put the 'canRender' script on the game object at runtime using AddComponent().

  • Punt on the script and use some other method to accomplish your goal. Note that block.renderer.isVisible gives the same value as that would be held by 'enabled' in the 'canRender' script.

avatar image dillon_kneeland · Jul 11, 2014 at 06:03 PM 0
Share

I figured it out thanks to you. Thank you! I have a script called placeBlock that instantiates a block and so I can just give that script the canRender script to attach to the object when it is instantiated. Thanks again! XD

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

2 People are following this question.

avatar image avatar image

Related Questions

The name 'Joystick' does not denote a valid type ('not found') 2 Answers

Arrays In Classes? 2 Answers

Why is Start() from my base class ignored in my sub-class? 4 Answers

Having both mouse orbit and smooth follow work at the same time? 0 Answers

C# Script is affecting multiple GameObjects but I would like it to only affect one of them... 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