public void TurnOn()
    {
        BindGazeManager(true);
        selectedContainer.gameObject.SetActive(true);
        originContainer.gameObject.SetActive(true);
        //selected = false;
        universeView.universeTime = 0;
        planetMap = new Dictionary <string, PlanetObject>();
        foreach (GameObject p in planetObjects)
        {
            string       name = p.name;
            PlanetObject po   = p.GetComponent <PlanetObject>();
            po.planetType = (PlanetObject.PlanetType)Enum.Parse(typeof(PlanetObject.PlanetType), name);
            //Debug.Log("addPlanetView:" + pv.planetType);
            planetMap.Add(name, po);
        }

        if (connectToServer)
        {
            SceneObject roomInitData = new SceneObject();
            //roomInitData.ShowObjectDic.Add(UniverseObject.OBJECT_TYPE, universeView.uo.CreateShowObject());
            roomInitData.ShowObjectDic.Add(cv_selected.containerType.ToString(), cv_selected.co.CreateShowObject());
            roomInitData.ShowObjectDic.Add(cv_originContainer.containerType.ToString(), cv_originContainer.co.CreateShowObject());
            roomInitData.ShowObjectDic.Add(PlanetObject.OBJECT_TYPE, selectedPlanet.CreateShowObject());
            cm.roomInitData = roomInitData;
            cm.TurnOn();

            //讲师端发送同步信息
            StartCoroutine(UpdateContainerData());
            Debug.Log(cm.GetSyncDelay());
        }
    }
Example #2
0
 void OnTriggerEnter2D(Collider2D col)
 {
     if (col.tag == "Planet")
     {
         m_planet = col.GetComponent <PlanetObject>();
         Debug.Log("Planet");
         m_score++;
     }
 }
Example #3
0
    public static void Create()
    {
        PlanetObject asset = ScriptableObject.CreateInstance <PlanetObject> ();

        AssetDatabase.CreateAsset(asset, "Assets/NewPlanetObject.asset");
        AssetDatabase.SaveAssets();
        EditorUtility.FocusProjectWindow();
        Selection.activeObject = asset;
    }
Example #4
0
 public void ChangeActivePlanet(PlanetObject planet)
 {
     planetName.text   = planet.planetName;
     planetGalaxy.text = planet.planetGalaxy + " galaxy";
     ShortenValue(planetDistance, planet.planetDistanceToEarth);
     ShortenValue(planetDiameter, planet.planetRadius);
     planetDiameter.text     = planet.planetRadius.ToString("n0") + " km";
     planetDescription.text  = planet.planetDescription;
     planetImage.sprite      = planet.planetImage;
     planetBackground.sprite = planet.planetBackground;
 }
 void SetSunLightDirection(PlanetObject planet, Transform t)
 {
     SunLightReceiver[] slrs = planet.gameObject.GetComponentsInChildren <SunLightReceiver>();
     if (slrs == null)
     {
         return;
     }
     foreach (SunLightReceiver slr in slrs)
     {
         slr.Sun = t;
     }
 }
Example #6
0
    void createPlanet()
    {
        PlanetObject planetObj = Instantiate(m_planetObject);
        float        size      = UnityEngine.Random.Range(1f, 4f);
        float        vX        = UnityEngine.Random.Range(-2f, 2f);
        float        vY        = m_height;

        m_height += size;
        planetObj.transform.position    = new Vector2(vX, vY);
        planetObj.transform.localScale *= size;
        planetObj.transform.SetParent(m_galaxyTransform);
        m_planetList.Add(planetObj);
    }
    public void SetPlanetStatus(MsgEntryLocal me)
    {
        float[] data = me.pr;
        //Debug.Log("星球序号为:" + data[0] + ":" + (PlanetObject.PlanetType)(int)data[0]);
        //Debug.Log("切换动画开始时间为:" + data[1]);

        PlanetObject po = null;

        if (((int)data[0]) != (int)PlanetObject.PlanetType.NOTSELECTED)
        {
            //有星球被选择
            po = planetMap[Enum.GetName(typeof(PlanetObject.PlanetType), (PlanetObject.PlanetType)data[0])];
        }

        RefreshPlanetStatus(po, data[1]);
    }
Example #8
0
    public PlanetObject ClosestPlanet(Vector3 objectPosition)
    {
        float        dist    = float.MaxValue;
        PlanetObject closest = null;

        foreach (PlanetObject planet in planets)
        {
            float distTest = Vector3.Distance(planet.transform.position, objectPosition) - Vector3.Magnitude(planet.transform.localScale) * 0.5f;

            if (distTest < dist)
            {
                dist    = distTest;
                closest = planet;
            }
        }

        return(closest);
    }
    public void SelectOnePlanet(string name, System.Action cb = null, bool sendMsg = true, bool animating = true, float animationStartUniverseTime = -1)
    {
        if (selected)
        {
            //Debug.Log("Select Blocked!!!!!!!!!!!");
            return;
        }

        if (planetMap.ContainsKey(name))
        {
            PlanetObject sel = planetMap[name];
            if (sendMsg && connectToServer)
            {
                MsgEntry me_toSend = sel.CreateMsgEntry();
                SyncMsg  sync      = new SyncMsg();
                sync.MsgEntry.Add(me_toSend);
                Debug.Log("Send select plaent![" + name + "]");
                cm.SendMessage(sync);
            }
        }
    }
    public void Init()
    {
        cv_selected        = selectedContainer.gameObject.GetComponent <ContainerView>();
        cv_originContainer = originContainer.gameObject.GetComponent <ContainerView>();

        cv_selected.containerType        = ContainerView.ContainerType.SelectedContainer;
        cv_originContainer.containerType = ContainerView.ContainerType.OriginContainer;


        //selectedPlanet = new PlanetObject();
        selectedPlanet = planetObject_notSelected;

        gazeManager = MultiInputManager.Instance;

        if (expControl != null)
        {
            expControl.Init();
        }

        cm = CollaborationManager.Instance;
        cm.AddMessageHandler(this);
    }
    public IEnumerator PlanetTransformAnimation(PlanetObject planet, Vector3 originPos, Vector3 finalPos, float originScal, float finalScal, AnimationCurve ac, float startTime, System.Action cbFinish = null)
    {
        //Debug.Log("<<<<<<<<<<<<<<<  Animation start!");
        planet.animating = true;
        Transform transform = planet.gameObject.transform;

        if (ac.length <= 0)
        {
            transform.localScale    = finalScal * Vector3.one;
            transform.localPosition = finalPos;
            yield break;
        }
        float processTime = ac.keys[ac.length - 1].time;

        while (universeView.universeTime - startTime < processTime)
        {
            if (animationInterrupt)
            {
                animationInterrupt = false;

                //Debug.Log("]]]]]]]]]]]] Animation stop! 1");
                planet.animating = false;
                break;
            }

            float mix = ac.Evaluate(universeView.universeTime - startTime);

            transform.localPosition = originPos * (1 - mix) + finalPos * mix;
            transform.localScale    = Vector3.one * (originScal * (1 - mix) + finalScal * mix);
            yield return(null);
        }
        //Debug.Log("]]]]]]]]]]]] Animation stop! 2");
        planet.animating = false;

        if (cbFinish != null)
        {
            cbFinish();
        }
    }
    private void RefreshPlanetStatus(PlanetObject po, float startTime)
    {
        if (po == null)
        {
            selected = false;
            SetChildrenVisible(originContainer.gameObject, true);
            //SetSunLightDirection(po, fakeSun);
        }
        else
        {
            selected = true;
            SetChildrenVisible(originContainer.gameObject, false);
            SetChildrenVisible(po.gameObject, true);
            if (expControl != null)
            {
                expControl.DoExplosion(cv_originContainer.transform.position, currentScaleFactor);
            }

            //Debug.Log(transform.position);
        }

        foreach (PlanetObject obj in planetMap.Values)
        {
            if (obj == po)
            {
                obj.selected = true;
                obj.animationStartUniverseTime = startTime;
            }
            else
            {
                if (obj.selected)
                {
                    obj.animationStartUniverseTime = startTime;
                }
                obj.selected = false;
            }
        }
    }
        private bool SavePlanetItems(List <GameObject> planetItems)
        {
            var i = 0;

            // Save objects placed on the planet.
            PlanetObjectData[] objectData = new PlanetObjectData[planetItems.Count];

            foreach (GameObject planetObject in planetItems)
            {
                PlanetObject tempObject = planetObject.GetComponent <PlanetObject>();
                Vector3      tempPos    = tempObject.transform.position;

                objectData[i].objectId      = tempObject.scrObject.objectID;
                objectData[i].objectName    = tempObject.scrObject.name;
                objectData[i].posX          = tempPos.x.ToString("0.00");
                objectData[i].posY          = tempPos.y.ToString("0.00");
                objectData[i].remainingTime = (int)tempObject.RemainingTime;

                planetObjects = JsonHelper.ToJsonPlanetItems(objectData, true);
                i++;
            }

            return(true);
        }
Example #14
0
 private void HandlePlanetObject(PlanetObject obj)
 {
     CheckDiscovere(obj);
     CheckNodeObjects(obj);
 }
Example #15
0
 void RemoveFromPlanetList(PlanetObject planet)
 {
     planets.Remove(planet);
 }
Example #16
0
 void AddToPlanetList(PlanetObject planet)
 {
     planets.Add(planet);
 }
Example #17
0
 void OnTriggerExit2D(Collider2D col)
 {
     m_planet = null;
     Debug.Log("Out");
 }