예제 #1
0
    // Use this for initialization
    void Start()
    {
        // prime the GUID random number generator
        Guid.NewGuid();

        GameObject lodSliderObj = GameObject.Find("LODSlider");

        if (lodSliderObj != null)
        {
            Slider lodslider = lodSliderObj.GetComponent <Slider>();
            this.LODCutoff  = PlayerPrefs.GetFloat("worldLodSlider", 0.033f);
            lodslider.value = this.LODCutoff;
            Debug.Log("Read lodcutoff:" + LODCutoff);
        }


        charC = GameObject.Find("ThirdPersonController");
        if (charC != null)
        {
            tpuc   = charC.GetComponent <ThirdPersonUserControl>();
            tpucRB = charC.GetComponent <Rigidbody>();
            charC.SetActive(false);
        }
        GameObject dropdownObj = GameObject.Find("SpawnDropdown");

        MAX_NODE_PER_FRAME = ProgramSettings.get("MAX_NODE_PER_FRAME", 15000);
        setCameraLoc(GameWorld.initialSpawn);
        map = CDRParse.getMap(GameWorld.worldName);

        if (dropdownObj != null)
        {
            dropdown = dropdownObj.GetComponent <Dropdown>();

            zoneMeshes = GameObject.Find("ZoneMeshes");
            zoneMeshes.SetActive(false);
            Material zoneBlockMaterial = Material.Instantiate(Resources.Load <Material>("borderzone"));

            zoneText = GameObject.Find("ZoneText").GetComponent <Text>();
            foreach (Zone z in map.zones)
            {
                //Debug.Log("creating zone:" + z._113Key);
                SCG.List <Vector3> points = z.points;
                GameObject         zone   = new GameObject("zone:" + z._113Key);

                PolygonCollider2D p = zone.AddComponent <PolygonCollider2D>();
                p.points   = points.Select(x => new Vector2(x.x, x.z)).ToArray();
                z.collider = p;

                GameObject zoneMesh = new GameObject("zone:" + z._113Key);
                if (z._113Key == 1802934646)
                {
                    MeshFilter   mf   = zoneMesh.AddComponent <MeshFilter>();
                    MeshRenderer mr   = zoneMesh.AddComponent <MeshRenderer>();
                    Mesh         mesh = ExtrudeSprite.CreateMesh(p.points, -10000.2f, 10000.2f);

                    mf.sharedMesh     = mesh;
                    mr.sharedMaterial = zoneBlockMaterial;


                    zoneMesh.transform.SetParent(zoneMeshes.transform);
                    zoneMesh.transform.localRotation = Quaternion.identity;
                    zoneMesh.transform.localPosition = Vector3.zero;
                }
            }
            foreach (Scene z in map.scenes)
            {
                SCG.List <Vector3> points = z.points;
                GameObject         zone   = new GameObject("scene:" + z._114Key);

                PolygonCollider2D p = zone.AddComponent <PolygonCollider2D>();
                p.points   = points.Select(x => new Vector2(x.x, x.z)).ToArray();
                z.collider = p;
            }

            dropdown.gameObject.SetActive(false);
            dropdown.options.Clear();
            int startIndex = 0;
            int i          = 0;
            foreach (WorldSpawn spawn in GameWorld.getSpawns())
            {
                if (spawn.spawnName.Equals(GameWorld.initialSpawn.spawnName))
                {
                    startIndex = i;
                }
                DOption option = new DOption(spawn.worldName + " - " + spawn.spawnName + " - " + spawn.pos, false);
                dropdown.options.Add(option);
                i++;
            }
            dropdown.value = startIndex;
            dropdown.gameObject.SetActive(true);
            dropdown.GetComponent <FavDropDown>().doOptions();
            dropdown.RefreshShownValue();
        }
        if (bigMap != null)
        {
            bigMap.setWorld(GameWorld.worldName);

            bigMap.OnSpawnClick += (s) =>
            {
                setCameraLoc(s);
            };
        }
    }
예제 #2
0
파일: HoldItem.cs 프로젝트: shd101wyy/Lone
    public void generate3DMeshFromTexture(Texture2D texture_2d, float depth = 0.065f)
    {
        ExtrudeSprite extrudeSprite = this.transform.gameObject.AddComponent <ExtrudeSprite> () as ExtrudeSprite;

        extrudeSprite.GenerateMesh(texture_2d, depth);
    }
예제 #3
0
파일: Game.cs 프로젝트: shd101wyy/Lone
    public static void generate3DMeshFrom2D(GameObject g, SpriteData sprite, float depth = 0.0625f)
    {
        ExtrudeSprite extrudeSprite = g.AddComponent <ExtrudeSprite> () as ExtrudeSprite;

        extrudeSprite.GenerateMesh(sprite.texture_2d, depth);
    }