void teleport_add(RaycastHit[] cur_hits)
    {
        for (int i = 0; i < cur_hits.Length; i++)
        {
            RaycastHit hit = cur_hits[i];

            GameObject teleport_start_prefab = Resources.Load("Teleport/Prefabs/Teleport") as GameObject;
            GameObject teleport_start        = (GameObject)Instantiate(teleport_start_prefab);

            teleport_start.AddComponent("SphereCollider");
            SphereCollider tmp = teleport_start.GetComponent("SphereCollider") as SphereCollider;
            tmp.isTrigger = true;
            tmp.radius    = 1.5f;
            int curID = SaveInfo();

            teleport_start.AddComponent("APETeleport");
            teleport_start.transform.parent = (Selection.activeObject as GameObject).transform;
            teleport_start.name             = "Teleport";

            APETeleport tmp2 = teleport_start.GetComponent("APETeleport") as APETeleport;
            tmp2.teleportID = curID;
            teleport_start.transform.position = hit.point;
            teleport_start.tag = "TeleportObj";
        }
    }
示例#2
0
    void OnTriggerEnter(Collider other)
    {
        if (targetID > -1)
        {
            for (int i = 0; i < all_teleports.Length; i++)
            {
                APETeleport tmp = all_teleports[i].GetComponent("APETeleport") as APETeleport;
                if (tmp.teleportID == targetID)
                {
                    other.gameObject.transform.position = new Vector3(all_teleports[i].transform.position.x, all_teleports[i].transform.position.y + 2.0f, all_teleports[i].transform.position.z);
                    //other.gameObject.transform.GetChildCount = false;

                    /*atoms = (GameObject)Instantiate(atoms_prefab);
                     * atoms.transform.position = other.gameObject.transform.position;
                     *
                     * MeshFilter tmpm = atoms.GetComponent<MeshFilter>();
                     * tmpm = other.gameObject.GetComponent<MeshFilter>();*/
                }
            }
        }
    }
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        control = (APETeleport)target;
        EditorGUILayout.BeginHorizontal();
        EditorGUILayout.PrefixLabel("Select type:");
        control.select_type = EditorGUILayout.Popup(control.select_type, options);
        EditorGUILayout.EndHorizontal();

        if (control.select_type == 0)
        {
            EditorGUILayout.BeginHorizontal();
            EditorGUILayout.PrefixLabel("Target ID:");
            control.targetID = EditorGUILayout.IntField(control.targetID);
            EditorGUILayout.EndHorizontal();
        }

        if (GUI.changed)
        {
            EditorUtility.SetDirty(target);
        }
    }