예제 #1
0
    private void Start()
    {
        mc = refCtrl.mapCtrl;

        agent = Instantiate(agentPrefab, this.transform);


        while (true)
        {
            agentX = Random.Range(0, mc.Map.GetLength(0));
            agentY = Random.Range(0, mc.Map.GetLength(1));

            agent.transform.position = new Vector3(agentX, agentY, -1f);

            TerrainObj agentTerrain = mc.Map[agentX, agentY];

            Debug.Log(agentTerrain.GetType());

            if (agentTerrain.type == TerrainObj.Type.grass)
            {
                Debug.Log("Set Home");
                break;
            }
            else
            {
                Debug.Log("Roll Again");
            }
        }
    }
예제 #2
0
        #pragma warning disable 414

        void Start()
        {
            if (SKYMASTER_OBJ != null)
            {
                SUNMASTER = SKYMASTER_OBJ.GetComponent(typeof(SkyMasterManager)) as SkyMasterManager;
            }
            SPEED = SUNMASTER.SPEED;

            SUNMASTER.Seasonal_change_auto = false;

            //v1.7
            HORIZON    = SUNMASTER.Horizon_adj;
            DuskLightG = SUNMASTER.Dusk_Sun_Color.g;
            DuskLightB = SUNMASTER.Dusk_Sun_Color.b;

            //v1.7
            if (TerrainHandle == null)
            {
                TerrainObj.SetActive(true);
                TerrainHandle = TerrainObj.GetComponentInChildren(typeof(SeasonalTerrainSKYMASTER)) as SeasonalTerrainSKYMASTER;
                TerrainObj.SetActive(false);
            }
            if (MeshTerrainHandle == null)
            {
                MeshTerrainObj.SetActive(true);
                MeshTerrainHandle = MeshTerrainObj.GetComponentInChildren(typeof(SeasonalTerrainSKYMASTER)) as SeasonalTerrainSKYMASTER;
            }

            TOD = SUNMASTER.Current_Time;

            GI_controller = SUNMASTER.SUN_LIGHT.GetComponent(typeof(ControlGIPROXY_ATTRIUM_SM)) as ControlGIPROXY_ATTRIUM_SM;
            Gi_proxy      = SUNMASTER.SUN_LIGHT.GetComponent(typeof(LightCollisionsPDM)) as LightCollisionsPDM;

            if (GI_controller != null)
            {
                GI_controller.enabled = false;
            }
        }
예제 #3
0
    protected override void OnFinished()
    {
        GameObject go = null;

        try
        {
            if (filename.Contains("_terrain_"))
            {
                TerrainObj tobj = parent.gameObject.GetComponent <TerrainObj>();
                if (tobj == null)
                {
                    parent.gameObject.AddComponent <TerrainObj>();
                }
                else
                {
                    tobj.enabled = true;
                }
            }
            count--;
            // This is executed by the Unity main thread when the job is finished
            if (niffile != null)
            {
                go = NIFLoader.loadNIF(niffile, filename);
                if (lodfile != null)
                {
                    GameObject lodgo = NIFLoader.loadNIF(lodfile, filename);

                    // terrain lod
                    LODGroup group = parent.gameObject.GetComponent <LODGroup>();
                    if (group == null)
                    {
                        group = parent.gameObject.AddComponent <LODGroup>();
                    }
                    group.enabled            = true;
                    group.animateCrossFading = true;
                    group.fadeMode           = LODFadeMode.SpeedTree;
                    LOD[]      lods         = new LOD[2];
                    Renderer[] renderersMax = go.GetComponentsInChildren <Renderer>();
                    Renderer[] renderersLow = lodgo.GetComponentsInChildren <Renderer>();
                    lods[0] = new LOD(0.6f, renderersMax);
                    lods[1] = new LOD(0.03f, renderersLow);
                    //lods[1] = new LOD(1f - LODCutoff, renderers);
                    group.SetLODs(lods);

                    GameObject lodObj = new GameObject();
                    lodObj.name = "LOD-" + filename;
                    lodgo.transform.SetParent(lodObj.transform);
                    lodObj.transform.SetParent(go.transform);
                }

                lock (originals)
                {
                    originals[filename] = go;
                }
            }
            else
            {
                go = getCachedObject(filename);
            }

            if (go != null)
            {
                if (Assets.GameWorld.useColliders)
                {
                    GameObject.Destroy(parent.GetComponent <BoxCollider>());
                    GameObject.Destroy(parent.GetComponent <SphereCollider>());
                }
                go.transform.SetParent(parent.transform);
                go.transform.localScale    = Vector3.one;
                go.transform.localPosition = Vector3.zero;
                go.transform.localRotation = Quaternion.identity;

                if (parent.gameObject.GetComponent <LODGroup>() != null)
                {
                    parent.gameObject.GetComponent <LODGroup>().RecalculateBounds();
                }
            }
        }
        catch (Exception ex)
        {
            Debug.LogWarning("Unable to load nif:" + niffile + " " + filename);
            Debug.Log(ex);
            if (null != go)
            {
                GameObject.Destroy(go);
            }
        }
        finally
        {
            if (cacheWait.ContainsKey(filename))
            {
                cacheWait[filename].Release();
            }
        }
    }