Quantcast
Channel: Questions in topic: "icon"
Viewing all articles
Browse latest Browse all 271

Minimap enemy icon help?

$
0
0
Let's say I was trying to make a minimap. For my case, my minimap is an image with a circular mask. The image is a raw image that takes in a texture that my minimap camera is rendering. I have an enemy AI in my game that moves around right? He should have an enemy icon. What I did was I made that enemy take in a script called MinimapItem. Here's the code using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; public class MinimapItem : MonoBehaviour { [Tooltip("The prefab that will be used to instantiate an icon into the map")] public GameObject IconPrefab; [Tooltip("The parent that the instantiated icon should be parented to")] public RectTransform MinimapParent; [Tooltip("The sprite of the icon")] public Sprite iconSprite; [Tooltip("The death sprite for the icon")] public Sprite deathSprite; [Tooltip("The target to follow")] public Transform Target; public void CreateIcon() { GameObject newIcon = Instantiate(IconPrefab) as GameObject; newIcon.transform.SetParent(MinimapParent, false); if (iconSprite != null) newIcon.GetComponent().aliveIcon = iconSprite; if (deathSprite != null) newIcon.GetComponent().deadIcon = deathSprite; newIcon.GetComponent().Target = Target; newIcon.GetComponent().RectRoot = MinimapParent; newIcon.GetComponent().Init(); } } The icon that is instantiated has a script called MinimapIcon. Here's the code: using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using Invector; using Invector.CharacterController; using Invector.EventSystems; public class MinimapIcon : MonoBehaviour { [HideInInspector] public Sprite aliveIcon; [HideInInspector] public Sprite deadIcon; [HideInInspector] public Transform Target; [HideInInspector] public RectTransform RectRoot; public void Init() { if (aliveIcon == null) print("no alive icon present"); this.GetComponent().sprite = aliveIcon; //Have OnKilled listen to the death event of the AI } public void FixedUpdate() { Vector2 viewPortPos = GameObject.FindGameObjectWithTag("MapCamera").GetComponent().WorldToViewportPoint(Target.position); print("viewPortPos" + viewPortPos); GetComponent().position = viewPortPos; } public void OnKilled() { this.GetComponent().sprite = deadIcon; } } Notice how the icon gets instantiated into the rect transform of my minimap raw image i was talking about in the beginning. My goal is to make the icon follow the enemy AI, but in like a certain scale with the UI the main camera sees (let me know if I need to be more clear, its hard to explain. If you look at UGUI Minimap's code, it's the same idea). I was thinking maybe it had to do with WorldToViewportPoint but thats not working. Ideas?

Viewing all articles
Browse latest Browse all 271

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>