// ![](330E21079BE9A11BBF50634E3F861264.png) // ![](A4B633BD4A6C55C7C086DDE7783ADCB6.png;;;0.02569,0.02569) public static int GetBaseColorIndex(this CreatureBoardAsset creatureBoardAsset) { if (Guard.IsNull(creatureBoardAsset, "creatureBoardAsset")) { return(0); } MaterialPropertyBlock _matBlock = ReflectionHelper.GetNonPublicField <MaterialPropertyBlock>(creatureBoardAsset, "_matBlock"); int BaseIndex = Shader.PropertyToID("_baseIndex"); if (_matBlock == null) { return(0); } Renderer[] renderers = creatureBoardAsset.Renderers; if (renderers == null) { return(0); } if (renderers.Length <= 0 || renderers[0] == null) { return(0); } renderers[0].GetPropertyBlock(_matBlock); return(_matBlock.GetInt(BaseIndex)); }
// Update is called once per frame void Update() { _renderer.GetPropertyBlock(_propBlock); Debug.Log(gameObject.name + ", RefNumber: " + _propBlock.GetInt("_RefNumber")); //_propBlock.SetInt("_RefNumber", var); _propBlock.SetColor("_Color", Color); _renderer.SetPropertyBlock(_propBlock); }
public void FlipCamera() { var lRot = cameraObject.transform.localRotation.eulerAngles; cameraObject.transform.localRotation = Quaternion.Euler(lRot.x, lRot.y + 180, lRot.z); var block = new MaterialPropertyBlock(); cR.GetPropertyBlock(block); var curr = block.GetInt("_Flipped"); block.SetInt("_Flipped", curr == 0 ? 1 : 0); cR.SetPropertyBlock(block); }
public void ToggleWatermark() { sR.GetPropertyBlock(sphereBlock); var curr = sphereBlock.GetInt("_Watermark"); if (curr == 1) { sphereBlock.SetInt("_Watermark", 0); } else { sphereBlock.SetInt("_Watermark", 1); } sR.SetPropertyBlock(sphereBlock); }
private void SetHighlight(bool isSelected) { bool curSelectionValue = propBlock.GetInt("_IsSelected") > 0.5f ? true : false; // If there is no change, we don't need to do anything if (isSelected == curSelectionValue) { return; } // Because there is a change, we need to toggle the value int newSelectionValue = isSelected ? 1 : 0; propBlock.SetInt("_IsSelected", newSelectionValue); boxRenderer.SetPropertyBlock(propBlock); }
/// <summary> /// Update the image that should be displayed in this slot to display the sprite of the specified item. /// /// If hidden, effect will not be visible until this slot is unhidden /// /// </summary> /// <param name="item">game object to use to determine what to show in this slot</param> /// <param name="color">color tint to apply</param> public void UpdateImage(GameObject item = null, Color?color = null) { var nullItem = item == null; var forceColor = color != null; if (nullItem && Item != null) { // Case for when we have a hovered image and insert, then stop hovering return; } // If player is cuffed, a special icon appears on his hand slots, exit without changing it. if ((namedSlot == NamedSlot.leftHand || namedSlot == NamedSlot.rightHand) && PlayerManager.LocalPlayerScript.playerMove.IsCuffed) { return; } if (!nullItem) { //determine the sprites to display based on the new item var spriteRends = item.GetComponentsInChildren <SpriteRenderer>(); if (image == null) { image = GetComponent <Image>(); } ItemAttributesV2 itemAttrs = item.GetComponent <ItemAttributesV2>(); spriteRends = spriteRends.Where(x => x.sprite != null && x != Highlight.instance.spriteRenderer).ToArray(); sprite = spriteRends[0].sprite; image.sprite = sprite; image.color = spriteRends[0].color; MaterialPropertyBlock pb = new MaterialPropertyBlock(); spriteRends[0].GetPropertyBlock(pb); bool isPaletted = pb.GetInt("_IsPaletted") > 0; if (itemAttrs.ItemSprites.InventoryIcon != null && itemAttrs.ItemSprites.IsPaletted) { image.material.SetInt("_IsPaletted", 1); image.material.SetColorArray("_ColorPalette", itemAttrs.ItemSprites.Palette.ToArray()); } else { image.material.SetInt("_IsPaletted", 0); } if (spriteRends.Length > 1) { if (spriteRends[1].sprite != null) { SetSecondaryImage(spriteRends[1].sprite); secondaryImage.color = spriteRends[1].color; } } //determine if we should show an amount var stack = item.GetComponent <Stackable>(); if (stack != null && stack.Amount > 1 && amountText) { amountText.enabled = true; amountText.text = stack.Amount.ToString(); } else if (stack != null && stack.Amount <= 1 && amountText) { //remove the stack display amountText.enabled = false; } } else { //no object was passed, so clear out the sprites Clear(); } if (forceColor) { image.color = color.GetValueOrDefault(Color.white); } image.enabled = !nullItem && !hidden; image.preserveAspect = !nullItem && !hidden; if (secondaryImage) { if (forceColor) { secondaryImage.color = color.GetValueOrDefault(Color.white); } secondaryImage.enabled = secondaryImage.sprite != null && !nullItem && !hidden; secondaryImage.preserveAspect = !nullItem && !hidden; } }