Exemple #1
0
    // Populates the world with asteroids of predefined locations; and decide if they should be enabled according to startingOct
    public void populateAsteroids(List <int> startingOct)
    {
        UnityEngine.Vector3 [] asteroidLocOne = new UnityEngine.Vector3[UnityConstants.treeNum];
        UnityEngine.Vector3 [] asteroidLocTwo = new UnityEngine.Vector3[UnityConstants.treeNum];
        asteroids = new Transform[UnityConstants.treeNum * UnityConstants.scenarioNum];

        // for the demo, the trick is that asteroids are statically located in fixed positions.
        for (int i = 0; i < UnityConstants.treeNum; i++)
        {
            asteroidLocOne [i] = UnityConstants.startingLocOne + UnityConstants.asteroidOffset[i];
            asteroidLocTwo [i] = UnityConstants.startingLocTwo + UnityConstants.asteroidOffset[i];
        }

        for (int i = 0; i < UnityConstants.treeNum; i++)
        {
            asteroids [i] = AsteroidInstantiate.MakeAnAsteroid("asteroid" + i.ToString(), asteroidLocOne [i], true);
            if (!inOct((int)asteroids [i].position.x, (int)asteroids [i].position.y, (int)asteroids [i].position.z, startingOct))
            {
                toggleVisibility(asteroids [i], false);
            }
        }
        for (int i = UnityConstants.treeNum; i < UnityConstants.treeNum * UnityConstants.scenarioNum; i++)
        {
            asteroids [i] = AsteroidInstantiate.MakeAnAsteroid("asteroid" + i.ToString(), asteroidLocTwo [i - UnityConstants.treeNum], true);
            if (!inOct((int)asteroids [i].position.x, (int)asteroids [i].position.y, (int)asteroids [i].position.z, startingOct))
            {
                toggleVisibility(asteroids [i], false);
            }
        }
    }
Exemple #2
0
    public void Start()
    {
        UnityConstants.init();

        selfTransform          = GameObject.Find(UnityConstants.selfTransformPath).transform;
        playersParentTransform = GameObject.Find(UnityConstants.playerParentPath).transform;

        minimapCamera = GameObject.Find(UnityConstants.selfTransformPath + UnityConstants.minimapCameraPath).transform;

        renderString = Constants.DefaultRenderString;

        AsteroidInstantiate.init();
        playerTransform = GameObject.Find(UnityConstants.playerTransformPath).transform;
        cubeTransform   = GameObject.Find(UnityConstants.cubeTransformPath).transform;

        UnityEngine.Vector3 dollPosUnity = UnityConstants.startingLocOne;
        transform.position = dollPosUnity;

        remap.NDNMOG.DiscoveryModule.Vector3 dollPos = new remap.NDNMOG.DiscoveryModule.Vector3(dollPosUnity.x, dollPosUnity.y, dollPosUnity.z);
        List <int> startingOct = CommonUtility.getOctantIndicesFromVector3(dollPos);

        populateAsteroids(startingOct);

        log = new Logging(playerName, UnityConstants.gameLogName, UnityConstants.libraryLogName);
        if (!readConfFromFile(UnityConstants.configFilePath))
        {
            playerName = "default";
            log.writeLog("Didn't parse config file, using default as name.");
        }

        if (loggingLevel != UnityConstants.LoggingLevelNone)
        {
            log.level_ = LoggingLevel.All;
        }
        else
        {
            log.level_ = LoggingLevel.None;
        }

        instance = new Instance(startingOct, playerName, dollPos, setPosCallback, log.libraryWriteCallback, infoCallback, null, null, null, renderString, hubPrefix);
        instance.discovery();

        instantiated = true;
        // instance is interested in its starting location
        trackOctant(startingOct);

        // set playerName for label: this is the full name of the local player.
        GameObject.Find(UnityConstants.playerTransformPath + UnityConstants.labelTransformPath).guiText.text = instance.getSelfGameEntity().getHubPrefix() + "/" + Constants.PlayersPrefix + "/" + playerName;

        GameObject entity = GameObject.Find(UnityConstants.playerTransformPath + UnityConstants.dollPath);

        if (entity != null)
        {
            string   path          = "Materials/" + renderString;
            Material unityMaterial = Resources.Load(path, typeof(Material)) as Material;

            if (unityMaterial != null)
            {
                entity.GetComponent <MeshRenderer> ().material = unityMaterial;
            }
        }
    }