-1
\$\begingroup\$

I wrote two little scripts to manage platform spawning. 1st - is attached to the Spawner gameObject. It's uset to spawn new platform. 2nd - is something like Platform Manager which not extend MonoBehaviour.

I want to set Spawner to create new platforms after old one goes off screen. But I dont know how to get current position of instantiated platform for example to check if platform is actualy off the screen.

Below my scripts:

1st. Spawner

void Update() {

    NewPlatform();
}

public void NewPlatform() {

    if (active) {
        newTransform = transform;
        PlatformManager.Instantiate(prefabs[Random.Range(0, prefabs.Length)], newTransform.position);              
    }
}

}

2nd. PlatformManager

using UnityEngine;
using System.Collections;

public class PlatformManager {

public static GameObject Instantiate(GameObject prefab, Vector3 pos) {

    GameObject instance = null;

    instance = GameObject.Instantiate(prefab);
    instance.transform.position = pos;

    return instance;
}

}

Briefly - haw can I get current position of instantiated object (or other parameters) from Spawner script?

Thank you in advance.

\$\endgroup\$
5
  • \$\begingroup\$ You already have it. newTransform.position \$\endgroup\$
    – Evorlor
    Commented Jul 23, 2015 at 13:23
  • \$\begingroup\$ something isn't adding up. You may want to go back to the whiteboard \$\endgroup\$
    – Evorlor
    Commented Jul 23, 2015 at 13:33
  • \$\begingroup\$ But this script is attached to Spawner which is not movinng. So if check position for example in Update method: Debug.Log("Current position: " + newTransform.position); it always return 0,0,0. \$\endgroup\$
    – MaD
    Commented Jul 23, 2015 at 15:07
  • \$\begingroup\$ I understood that. The reason you are having trouble is because you are on the wrong path. You need to backtrack, not move forward. I know it is hard to do, but i sincerely suggest deleting these 2 scripts, calling it a day, and looking at it fresh tomorrow. That is what I would do. \$\endgroup\$
    – Evorlor
    Commented Jul 23, 2015 at 15:11
  • \$\begingroup\$ instance.transform.position = pos - transform.position should do the trick. Or just use instance.transform.position = transform.TransformPoint(pos) \$\endgroup\$
    – Leggy7
    Commented Jul 23, 2015 at 16:11

1 Answer 1

0
\$\begingroup\$

Try attaching a script to your platform instances. Then in that scripts Start() method use Debug.Log to log the parent platforms Transform

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .