Exemple #1
0
    // 星座データの収集
    ConstellationData CollectConstellationData(ConstellationNameData name)
    {
        var data = new ConstellationData();

        // 星座の名前登録
        data.Name = name;

        // 星座IDが同じものを登録
        data.Position = constellationPositionData.FirstOrDefault(s => name.Id == s.Id);

        // 星座の略称が同じものを登録
        data.Lines = constellationLineData.Where(s => name.Summary == s.Name).ToList();

        // 星座線が使用している星を登録
        data.Stars = new List <StarData>();
        foreach (var line in data.Lines)
        {
            var start = starData.FirstOrDefault(s => s.Hip == line.StartHip);
            data.Stars.Add(start);
            var end = starData.FirstOrDefault(s => s.Hip == line.EndHip);
            data.Stars.Add(end);

            // 星座で使用される星
            start.UseConstellation = end.UseConstellation = true;
        }

        return(data);
    }
Exemple #2
0
    // 星座名の作成
    GameObject CreateName(ConstellationNameData nameData, ConstellationPositionData positionData)
    {
        // 星座名のプレハブからインスタンス作成
        var text      = Instantiate(namePrefab);
        var textTrans = text.transform;

        // 星の見える方向へ回転させる
        textTrans.localRotation = Quaternion.Euler(positionData.Declination, positionData.RightAscension, 0.0f);
        text.name = nameData.Name;

        // 子供の3D Textの位置を天球の位置へ移動させる
        var child = textTrans.GetChild(0);

        child.transform.localPosition = new Vector3(0.0f, 0.0f, SpaceSize);

        // TextMeshを取得して、星座の名前に変更する
        var textMesh = child.GetComponent <TextMesh>();

        textMesh.text = string.Format("{0}座", nameData.JapaneseName);

        return(text);
    }