- Home /
Set Active To Prefab
I want to use a button to save the game objects I set active through script on the selected prefab but i can't find a script that can do that this is the script i'm using to set the game objects active
//Starters
var GameLogicObj : GameObject;
//attachments
var sightID : int = 0;
var Scope : GameObject;
var Acog : GameObject;
var muzzleID : int = 0;
var SILENCER : GameObject;
var lightID : int = 0;
var flashlight : GameObject;
var laserPointer : GameObject;
function Awake ()
{
GameLogicObj = GameObject.FindGameObjectWithTag("GameLogic").gameObject;
}
function Update ()
{
//get gameobjectLogic stats
sightID = GameLogicObj.GetComponent(GameAttachmentlogic).MainsightID;
muzzleID = GameLogicObj.GetComponent(GameAttachmentlogic).MainmuzzleID;
lightID = GameLogicObj.GetComponent(GameAttachmentlogic).MainlightID;
if (sightID == 0)
{
Scope.SetActive(false);
Acog.SetActive(false);
}
if (sightID == 1)
{
Scope.SetActive(true);
Acog.SetActive(false);
}
if (sightID == 2)
{
Scope.SetActive(false);
Acog.SetActive(true);
}
if (sightID == 3)
{
Scope.SetActive(false);
Acog.SetActive(false);
}
if (muzzleID == 0)
{
SILENCER.SetActive(false);
}
if (muzzleID == 1)
{
SILENCER.SetActive(true);
}
if (muzzleID == 2)
{
SILENCER.SetActive(false);
}
if (lightID == 0)
{
flashlight.SetActive(false);
laserPointer.SetActive(false);
}
if (lightID == 1)
{
flashlight.SetActive(true);
laserPointer.SetActive(false);
}
if (lightID == 2)
{
flashlight.SetActive(false);
laserPointer.SetActive(true);
}
if (lightID == 3)
{
flashlight.SetActive(false);
laserPointer.SetActive(false);
}
}
Comment
you may want to put all those if statements into a switch statement or atleast do else if
Answer by Mikael-Gyth · Jul 24, 2013 at 09:29 AM
If you create a reference to the script in witch you want to save the objects, you can set it trough that. If I understand your question correctly.
function Awake ()
{
ObjectToSaveToScript = GameObject.FindGameObjectWithTag("ObjectToSaveTo").GetComponent<ObjectToSaveToScript>();
}
and then
if (sightID == 0)
{
Scope.SetActive(false);
Acog.SetActive(false);
ObjectToSaveToScript.Scope = Scope;
ObjectToSaveToScript.Acog = Acog;
}
Your answer
Follow this Question
Related Questions
Best method to save states in/for a prefab 0 Answers
How to save a prefab when a button is pressed 1 Answer
Initiating a rich prefab runtime 0 Answers
Save color prefab 0 Answers