public void CollectByTap(Vector3 tapPosition, Transform parent) { double output = 0; foreach (ResourceController resource in _activeResources) { if (resource.IsUnlocked) { output += resource.GetOutput(); } } TapText tapText = GetOrCreateTapText(); tapText.transform.SetParent(parent, false); tapText.transform.position = tapPosition; tapText.Text.text = $"+{ output.ToString("0") }"; tapText.gameObject.SetActive(true); CoinIcon.transform.localScale = Vector3.one * 1.75f; AddGold(output); }
private TapText GetOrCreateTapText() { TapText tapText = _tapTextPool.Find(t => !t.gameObject.activeSelf); if (tapText == null) { tapText = Instantiate(TapTextPrefab).GetComponent <TapText>(); _tapTextPool.Add(tapText); } return(tapText); }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); // Set our view from the "main" layout resource SetContentView(Resource.Layout.Main); // Illustrates how to use the Messenger by receiving a message // and sending a message back. Messenger.Default.Register <NotificationMessageAction <string> >( this, HandleNotificationMessage); // Binding and commanding // Binding between the first TextView and the WelcomeTitle property on the VM. // Keep track of the binding to avoid premature garbage collection _bindings.Add( this.SetBinding( () => Vm.WelcomeTitle, () => WelcomeText.Text)); // Actuate the IncrementCommand on the VM. IncrementButton.SetCommand( "Click", Vm.IncrementCommand); // Create a binding that fires every time that the EditingChanged event is called var dialogNavBinding = this.SetBinding( () => DialogNavText.Text); // Keep track of the binding to avoid premature garbage collection _bindings.Add(dialogNavBinding); // Actuate the NavigateCommand on the VM. // This command needs a CommandParameter of type string. // This is what the dialogNavBinding provides. TapText.SetCommand( "Click", Vm.NavigateCommand, dialogNavBinding); // Actuate the ShowDialogCommand on the VM. // This command needs a CommandParameter of type string. // This is what the dialogNavBinding provides. // This button will be disabled when the content of DialogNavText // is empty (see ShowDialogCommand on the MainViewModel class). ShowDialogButton.SetCommand( "Click", Vm.ShowDialogCommand, dialogNavBinding); // Create a binding between the Clock property of the VM // and the ClockText TextView. // Keep track of the binding to avoid premature garbage collection _bindings.Add(this.SetBinding( () => Vm.Clock, () => ClockText.Text)); // Actuate the SendMessageCommand on the VM. SendMessageButton.SetCommand( "Click", Vm.SendMessageCommand); }