Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何统一收枪_C#_Unity3d - Fatal编程技术网

C# 如何统一收枪

C# 如何统一收枪,c#,unity3d,C#,Unity3d,我试图在unity中添加拾取枪功能,但它给了我一个错误,我遵循本教程:- 这是我的密码 using System.Collections.Generic; using UnityEngine; public class PickupScript : MonoBehaviour { public float distance = 10f; public float equipPosition; GameObject currentWeapon; bool can

我试图在unity中添加拾取枪功能,但它给了我一个错误,我遵循本教程:-

这是我的密码

using System.Collections.Generic;
using UnityEngine;

public class PickupScript : MonoBehaviour
{
    public float distance = 10f;
    public float equipPosition;
    GameObject currentWeapon;

    bool canGrab;

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

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

    private void CheckGrab()
    {
        RaycastHit hit;
        
        if (Physics.Raycast(transform.position,transform.forward,out hit,distance))
        {
            if (hit.transform.tag == "CanGrab")
            {
                Debug.Log("I can Grab it!");
                currentWeapon = hit.transform.gameObject;
                canGrab = true;
            }
            else
                canGrab = false;

        }
    }

    private void Pickup()
    {
        currentWeapon.transform.position = equipPosition.position;
        currentWeapon.transform.parent = equipPosition;
        currentWeapon.transform.localEulerAngles = new Vector3(0f, 180f, 180f);
        currentWeapon.GetComponent<Rigidbody>().isKinematic = true;

        Debug.Log("Picked it up");
    }
}

错误是

严重性代码说明项目文件行抑制状态 错误CS1061“float”不包含“position”和的定义 没有可访问的扩展方法“position”接受第一个参数 如果缺少using指令或 程序集引用?程序集CSharp E:\Unity\My 游戏\资产\脚本\ PickupScript.cs 44处于活动状态

第二个错误是

严重性代码说明项目文件行抑制状态 错误CS0029无法将类型“float”隐式转换为 “UnityEngine.Transform”程序集CSharp E:\Unity\My 游戏\资产\脚本\ PickupScript.cs 45处于活动状态

您的第一个错误: equipPosition是一个浮动,其中没有位置的定义。位置可用于变换类型的对象

你的第二个: equipPosition是一个浮点,而不是变换对象,这意味着它不能用作对象的父对象


您只需将equipPosition更改为一个转换类型的变量,一切都应该正常工作。

您正在尝试从浮点中获得一个位置

public float equipPosition;
currentWeapon.transform.position = equipPosition.position;

你可能想要一个转变。

有人能告诉我他们为什么投了-3票吗?我不能再问更多的问题了