Esempio n. 1
0
    public override void Recycle()
    {
        universeView = null;
        planet       = null;

        base.Recycle();
    }
Esempio n. 2
0
    public void InitPlanet(Planet planet, UniverseView universeView)
    {
        this.planet       = planet;
        this.universeView = universeView;

        Init(planet);

        gameObject.SetActive(true);
    }
Esempio n. 3
0
    public void Init(UniverseObject universeObject, UniverseView universeView)
    {
        this.universeView   = universeView;
        this.universeObject = universeObject;

        universeObject.Listener = this;

        parentView = universeView.GetPlanetView(universeObject.parent);

        UpdatePosition();
    }
Esempio n. 4
0
    // Use this for initialization
    void Awake()
    {
        Instance = this;
        uo       = new UniverseObject();
        uo.Init();
        uo.uv      = this;
        universeID = UnityEngine.Random.value;//不知道传输精度会不会导致问题
        long idTemp = (long)(universeID * 10000000.0f);

        universeID  = (float)(idTemp % 10000000);
        universeID /= 1000.0f;
        //Debug.Log("uo ini232323234234234t");
    }
Esempio n. 5
0
    public void UpdateClickOnPlanetToTravel(UniverseView universeView)
    {
        bool    clickTravel   = false;
        Vector2 clickPosition = Vector2.zero;

        if (Application.platform == RuntimePlatform.Android || Application.platform == RuntimePlatform.IPhonePlayer)
        {
            if (!travelInput)
            {
                if (Input.touchCount == 1 && Input.GetTouch(0).phase == TouchPhase.Began && !InputAreas.IsInputArea(Input.GetTouch(0).position))
                {
                    travelInput = true;
                    travelInputStartPosition = Input.GetTouch(0).position;
                }
                else
                {
                    travelInput = false;
                }
            }
            else
            {
                if (Input.touchCount == 1)
                {
                    if (Input.GetTouch(0).phase == TouchPhase.Ended)
                    {
                        if ((travelInputStartPosition - Input.GetTouch(0).position).magnitude < 10)
                        {
                            clickTravel   = true;
                            clickPosition = Input.GetTouch(0).position;
                        }

                        travelInput = false;
                    }
                }
                else
                {
                    travelInput = false;
                }
            }
        }
        else
        {
            if (!travelInput)
            {
                if (Input.GetMouseButtonDown(0) && !InputAreas.IsInputArea(Input.mousePosition))
                {
                    travelInput = true;
                    travelInputStartPosition = Input.mousePosition;
                }
                else
                {
                    travelInput = false;
                }
            }
            else
            {
                if (Input.GetMouseButtonUp(0))
                {
                    if ((travelInputStartPosition - (Vector2)Input.mousePosition).magnitude < 10)
                    {
                        clickTravel   = true;
                        clickPosition = Input.mousePosition;
                    }

                    travelInput = false;
                }
                else if (!Input.GetMouseButton(0))
                {
                    travelInput = false;
                }
            }
        }

        if (clickTravel)
        {
            Vector2 worldPos          = Camera.main.ScreenToWorldPoint(clickPosition);
            Vector2 worldPosTolerance = Camera.main.ScreenToWorldPoint(clickPosition + Vector2.right * (Screen.dpi > 0 ? Screen.dpi : 72) / 2.54f); //1 cm tolerance

            int clickedThingIndex = universeView.Universe.FindClosestRenderedThing(worldPos, (worldPos - worldPosTolerance).magnitude);

            if (clickedThingIndex >= 0)
            {
                PlanetView targetPlanetView = universeView.GetPlanetView((ushort)clickedThingIndex);
                if (universeView.avatarView.UniverseObject.parent != targetPlanetView.TilemapCircle)
                {
                    GameLogic.Instace.TravelToPlanet(targetPlanetView);
                }
            }
        }
    }