- Home /
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 :)
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.
I'm just trying to get around having to place this script on every block manually :p
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.
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
Follow this Question
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