#Image Issue
1 messages · Page 1 of 1 (latest)
Do you have an Animator
An Animator on another gameobject, but not one on the UI element
on a parent of the UI element?
Nope
Most likely you have other code disabling it
can you share the whole script?
also just for shits and giggles
try disabling the animator and seeing if that does anything
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using DG.Tweening;
using TMPro;
public class AmmoUIController : MonoBehaviour
{
[SerializeField] private Image cameraImage;
[SerializeField] private TextMeshProUGUI ammoCount;
[Header("Camera Icons")]
[SerializeField] private Sprite singleCamera;
[SerializeField] private Sprite wideCamera;
[SerializeField] private Sprite rapidCamera;
[SerializeField] private Sprite continuousCamera;
void Start()
{
cameraImage.enabled = false;
}
public void SetAmmoCount(int count)
{
ammoCount.text = count.ToString();
}
public void SetSelectedCamera(CameraTypeManager.CameraType cameraTypeId)
{
cameraImage.enabled = true;
//cameraImage.rectTransform.DOPunchScale(Vector3.one * 0.5f, 0.3f, 1);
//switch (cameraTypeId)
//{
// case CameraTypeManager.CameraType.Single:
// cameraImage.sprite = singleCamera;
// break;
// case CameraTypeManager.CameraType.Wide:
// cameraImage.sprite = wideCamera;
// break;
// case CameraTypeManager.CameraType.Rapid:
// cameraImage.sprite = rapidCamera;
// break;
// case CameraTypeManager.CameraType.Continuous:
// cameraImage.sprite = continuousCamera;
// break;
// default:
// cameraImage.enabled = false;
// break;
//}
Debug.Log("cameraImage.enabled = " + cameraImage.enabled);
}
}
where is that being called from
A weapon switch script. Here's the function:
private void SelectWeapon()
{
int i = 0;
foreach(Transform weapon in transform)
{
if (i == selectedWeapon)
{
weapon.gameObject.SetActive(true);
if (weapon.TryGetComponent(out PlayerCombatController weaponController))
{
ammoUIController.SetSelectedCamera(weaponController.cameraType);
playerInventory.SwitchWeapon(weaponController.cameraType);
}
}
else
{
weapon.gameObject.SetActive(false);
}
i++;
}
audioSource.Stop();
audioSource.PlayOneShot(switchSFX, 0.5f);
}
basically you've got some other code or an Animator or something changing it back