В 2D-пространстве:У меня есть спрайт и ему назначен компонент скриптаУ меня есть это утверждение в методе Start:"onScreenRect = rt.rect;"Он не будет обнаруживать mouseOver, как можно было ожидать!Теперь, если этот оператор перемещен в метод Update, он будет.Пожалуйста, объясните, почему.
public class EvtPub : MonoBehaviour
{
RectTransform rt;
Rect onScreenRect;
void Start()
{
rt = GetComponent<RectTransform>();
// having next statement here, the code will Not work!
onScreenRect = rt.rect;
}
void Update()
{
// having next statement here, the code Will work!
// onScreenRect = rt.rect;
onScreenRect.Set(onScreenRect.x + transform.position.x,
onScreenRect.y + transform.position.y, onScreenRect.width, onScreenRect.height);
if (onScreenRect.Contains(Input.mousePosition))
{
Debug.Log("Mouse over detected!");
}
}
}