Esempio n. 1
0
        private void Init(GameObject rootObject)
        {
            var receiver = new GameObject("FallbackedEvent").AddComponent <FallbackedEventReceiver>();

            receiver.transform.SetParent(transform, false);
            var raycaster = FallbackPhysicsRaycaster.CreateComponent(gameObject, receiver.gameObject);

            FallbackedEventsObservable = receiver.EventObservable;

            _canvasUi = Instantiate(Resources.Load <CastUIView>(PrefabPath));
            _canvasUi.transform.SetParent(transform, false);

            // SubCamera View
            var texture = new RenderTexture(200, 110, 24);

            _canvasUi.SubCameraRawImage.texture = texture;
            var rect   = _canvasUi.SubCameraRawImage.GetComponent <RectTransform>().rect;
            var aspect = rect.width / rect.height;

            _subCameraStrategy = new AgentFocusStrategy();
            _subCamera         =
                SubCamera.CreateComponent(rootObject, _subCameraStrategy, texture, aspect);
            _canvasUi.SubCameraToggleButton.onClick.AddListener(() =>
            {
                SubCameraIsActive = !SubCameraIsActive;
            });
            SubCameraIsActive = false;

            _creatureInfoList = new CreatureInfoList(_canvasUi.CreatureList);
            _creatureInfoList.SelectedCell
            .Where(x => x != null)
            .Subscribe(x => SelectedCreature.Value = x.Creature)
            .AddTo(this);

            // Selected Creature
            SelectedCreature.Subscribe(OnSelected).AddTo(this);

            // Cursor
            FallbackedEventsObservable
            .Where(x => x.Item1 == FallbackedEventReceiver.FallbackedEvents.RightClick)
            .Where(x => Vector2.Distance(x.Item2.position, x.Item2.pressPosition) < 0.1f)
            .Subscribe(x => _canvasUi.Cursor.position = x.Item2.position)
            .AddTo(this);

            // ToolBar
            LeftToolBar             = new ToolBar(_canvasUi.ToolBarCategoryList, _canvasUi.ToolBarList, _canvasUi.ToolBarListRoot);
            LeftToolBar.ListVisible = false;
        }