C# 如何统一收枪
我试图在unity中添加拾取枪功能,但它给了我一个错误,我遵循本教程:- 这是我的密码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
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票吗?我不能再问更多的问题了