【问题标题】:Vector2' does not contain a definition for 'transform' and no accessible extension method 'transform' accepting a first argument of type 'Vector2'Vector2'不包含'transform'的定义,并且没有可访问的扩展方法'transform'接受'Vector2'类型的第一个参数
【发布时间】:2020-04-05 14:24:46
【问题描述】:

这是我的代码(问题来自 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);
       }
}
}

【问题讨论】:

    标签: c# unity3d


    【解决方案1】:

    你可以只使用 Input.mousePosition ,它是 Vector3 你不需要一个局部变量。

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

    希望对你有帮助

    【讨论】:

    • 这在一定程度上有效。当我单击鼠标键时,游戏对象只是向上和向右移动。 (我把 Vector3 改成了 Vector2)
    • 你可以分享代码,以便我更好地理解有什么区别吗?谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-04-15
    • 2023-03-13
    • 2019-07-29
    • 1970-01-01
    • 1970-01-01
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多