如何在团结中拿起枪

  • 本文关键字: c# unity-game-engine
  • 更新时间 :
  • 英文 :


我试图在unity中添加一个拾取枪功能,但它给了我一个错误,我正在遵循本教程:-https://www.youtube.com/watch?v=aQoe2Oy78GU

这是我的代码

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"接受第一个参数未能找到类型为"float"的(是否缺少using指令或程序集引用?(程序集CSharp E:\Unity\My游戏\资产\脚本\拾取脚本.cs 44活动

第二个错误是

严重性代码描述项目文件行禁止显示状态错误CS0029无法将类型"float"隐式转换为"UnityEngine.Transform"程序集CSharp E:\Unity\My游戏\资产\脚本\拾取脚本.cs 45活动

您的第一个错误:equipPosition是一个浮点,其中没有position的定义。position可用于Transform类型的对象。

您的第二个:equipPosition是一个float,而不是Transform对象,这意味着它不能用作对象的父对象。

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

您正试图从浮点中获取一个位置。

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

你可能想要变身。

相关内容

  • 没有找到相关文章

最新更新