- Home /
 
               Question by 
               Crax · Oct 15, 2014 at 08:17 PM · 
                instantiateprefabparent  
              
 
              Setting the parent of a transform which resides in a prefab is disabled to prevent data corruption. I am not using a Preafab.
I checked this code with a friend that has a better knowledge of Unity, but we can't find the problem. Basically, Unity says that i can't parent a prefab, but i'm trying to change the parent of an instanced object, not the prefab.
I Can't understand the error (But i think that it's in the Update method)
using System.Collections; using UnityEngine; using UnityEditor;
 public class WeaponsManager:MonoBehaviour, IWeapon{
 private usefulStuff crax= new usefulStuff();
 private bool canShoot = true;
 public float projectileSpeed;
 public float bulletTime;
 private float t = 0f;
 public Rigidbody bullet;
 public int maxBullets, maxBulletsPerCharger;
 private int actualBullets;
 public Animation reloadAnimation;
 public Transform bulletSpawn;
 public Transform gunPosition;
 public GameObject[] Weapons;
 private GameObject actualWeapon=null;
 
 
 // Use this for initialization
 /*public Weapon(Mesh wm, Transform bs, Animation ra, int mb, int mbpc, float bt, float ps)
 {
     weaponModel = wm;
     bulletSpawn = bs;
     reloadAnimation = ra;
     maxBullets = mb;
     maxBulletsPerCharger = mbpc;
     actualBullets = mbpc;
     bulletTime = bt;
     projectileSpeed = ps;
 }*/
 
 void Awake()
 {
     if (Weapons.Length == 0)
     {
         Debug.Log("No weapons loaded");
         EditorApplication.isPaused = true;
     }
 }
 void Update()
 {
     //So i check if there aren't weapons loaded. If there aren't, i load the first Weapon      GameObject in the Weapons Array, then i instantiate it.
     if (actualWeapon == null)
     {    
         actualWeapon = GameObject.Instantiate(Weapons[0], gunPosition.position,     gunPosition.rotation) as GameObject;
         actualWeapon.transform.parent = GameManager.instance.player.transform;   
 
     }
     else // Now if there is a gun loaded, i update its position.
     {
 
     }
 }
 public virtual void Fire() 
 {
     //Check if the charger is full
         if(actualBullets>0){
             //Check if the player can shoot (REALLY LOL CPTN OBVIOUS STRIKEZ AGAIN )
                 if(canShoot){
                     //Logic: Remove a bullet, create it then move it. Easy peasy.
                     actualBullets--;
                      Rigidbody nBullet = GameObject.Instantiate(bullet, bulletSpawn.position, Quaternion.identity)as Rigidbody;
                      nBullet.AddForce (new Vector3(Vector3.forward.x, Vector3.forward.y, projectileSpeed));
                     //And now the player cant shoot. Cause nobody wants a sniper mitra.
                      canShoot=false;
                 }
                 else
                 {
                 //All this stuff is to make a little amount of time pass between two bullets
                 if(t <=bulletTime)
                     {
                     t += Time.deltaTime;
                     } 
                 else 
                 {
                     canShoot=true;
                     t = 0;
                 }
             }
         }
             else
         {
         Reload();
         }
 }
 
 
 public void Reload () {
     canShoot = false;
     actualBullets = maxBulletsPerCharger;
     reloadAnimation.Play ();
     crax.Delay (reloadAnimation.clip.length);
     canShoot = true;
 
 }
 }
               Comment
              
 
               
              Your answer
 
 
             Follow this Question
Related Questions
Parenting GameObjects 1 Answer
Change Parent of Multiple Instantiated Objects 1 Answer
Howto set main.camera as a parent when main.camera itself is a child of a prefab 1 Answer
Instantiating prefab with certain coordinates problem (c#) 0 Answers
Prefab, procedural attachment of child, childCount return 0 1 Answer
 koobas.hobune.stream
koobas.hobune.stream 
                       
                
                       
			     
			 
                