stoopi_poopy
stoopi_poopy

Reputation: 3

Vector2' does not contain a definition for 'transform' and no accessible extension method 'transform' accepting a first argument of type 'Vector2'

here is my code (the problem is from transform.position = Vector3.MoveTowards(transform.position, mousePosition.transform.position, step);)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class MouseDirection : MonoBehaviour
{
public Vector2 mousePosition;
public GameObject Player;
public float speed;

// Start is called before the first frame update
void Start()
{

}

// Update is called once per frame
void Update()
{

     Vector2 mousePosition = new Vector2(Input.mousePosition.x, Input.mousePosition.y);
      float step = speed * Time.deltaTime;
       if (Input.GetMouseButtonDown(0)){
       transform.position = Vector3.MoveTowards(transform.position, 
mousePosition.transform.position, step);
       }
}
}

Upvotes: 0

Views: 2421

Answers (1)

Aviad Hasidof
Aviad Hasidof

Reputation: 111

You can just use Input.mousePosition which is Vector3 you do not need a local variable for this.

transform.position = Vector3.MoveTowards(transform.position, Input.mousePosition, step);

hope this helps

Upvotes: 1

Related Questions