- Home /
[Solved] How to instantiate GameObject with different rigidbody parameters
Hi I'm new to coding with c# and Unity and was wondering how to instantiate a GameObject with different parameters than the original. In this particular script, I want to set the clone GravityScale back to 0.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BlockController : MonoBehaviour {
public KeyCode drop;
public GameObject block;
public Camera mainCam;
public bool follow;
public bool copy;
public Rigidbody2D Block;
public int timer = 20;
// Use this for initialization
void Start () {
follow = true;
copy = false;
}
void Update(){
if (Input.GetKeyDown (drop)) {
follow = false;
copy = true;
Block.gravityScale = 1;
}
if (copy) {
timer--;
}
//Debug.Log (Input.mousePosition);
}
// Update is called once per frame
void FixedUpdate () {
if (follow) {
block.transform.position = mainCam.ScreenToWorldPoint (new Vector3 ((Input.mousePosition.x), (Input.mousePosition.y), 10));
} else if (copy && timer == 0) {
GameObject clone = Instantiate (block, mainCam.ScreenToWorldPoint (new Vector3 ((Input.mousePosition.x), (Input.mousePosition.y), 10)), Quaternion.identity);
copy = false;
timer = 20;
//Destroy (block);
}
}
}
I realize that this is probably not the best way to do things so if you have any other suggestions they are also welcome.
Answer by tormentoarmagedoom · Apr 12, 2018 at 11:24 AM
Good day.
Once you instantiate something like you do:
GameObject clone = Instantiate (block, .......)
You have stored your recent instantiated object in the variable "clone". So now, you are able to modify it as your desire. If want to change something of the rigidbody, for example the isKinematic property, you need:
clone.GetComponent<RigidBody>().isKinematic = true;
the "clone" GameObject can be trated as any other object in the scene, acces components, move it, destroy it.. everything!
If helped, accept the answer & close the question!
Bye!
Your answer
Follow this Question
Related Questions
How do i Instantiate gameObjects in between multiple points? 2 Answers
How do i Instantiate Objects to a Empty GameObject as a Child?? 3 Answers
Creating a GameObject variable without instantiating it? 1 Answer
Object Instantiate 1 Answer
UNET - How do I properly instantiate Rigidbody2D over network? 1 Answer