gpt4 book ai didi

c# - 当前上下文中不存在“CrossPlatformInputManager”

转载 作者:太空宇宙 更新时间:2023-11-03 12:51:28 25 4
gpt4 key购买 nike

所以我正在 Unity 中处理一个项目,这突然弹出。
控制台错误是:

Assets/StandardAssets/Vehicles/Aircraft/Scripts/AeroplaneUserControl2Axis.cs(29,27): error CS0103: The name 'CrossPlatformInputManager' does not exist in the current context

以下是它所指的脚本:

using System;
using UnityEngine;
using UnityStandardAssets.CrossPlatformInput;

namespace UnityStandardAssets.Vehicles.Aeroplane
{
[RequireComponent(typeof (AeroplaneController))]
public class AeroplaneUserControl2Axis : MonoBehaviour
{
// these max angles are only used on mobile, due to the way pitch and roll input are handled
public float maxRollAngle = 80;
public float maxPitchAngle = 80;

// reference to the aeroplane that we're controlling
private AeroplaneController m_Aeroplane;


private void Awake()
{
// Set up the reference to the aeroplane controller.
m_Aeroplane = GetComponent<AeroplaneController>();
}


private void FixedUpdate()
{
// Read input for the pitch, yaw, roll and throttle of the aeroplane.
float roll = CrossPlatformInputManager.GetAxis("Horizontal");
float pitch = CrossPlatformInputManager.GetAxis("Vertical");
bool airBrakes = CrossPlatformInputManager.GetButton("Fire1");

// auto throttle up, or down if braking.
float throttle = airBrakes ? -1 : 1;
#if MOBILE_INPUT
AdjustInputForMobileControls(ref roll, ref pitch, ref throttle);
#endif
// Pass the input to the aeroplane
m_Aeroplane.Move(roll, pitch, 0, throttle, airBrakes);
}


private void AdjustInputForMobileControls(ref float roll, ref float pitch, ref float throttle)
{
// because mobile tilt is used for roll and pitch, we help out by
// assuming that a centered level device means the user
// wants to fly straight and level!

// this means on mobile, the input represents the *desired* roll angle of the aeroplane,
// and the roll input is calculated to achieve that.
// whereas on non-mobile, the input directly controls the roll of the aeroplane.

float intendedRollAngle = roll*maxRollAngle*Mathf.Deg2Rad;
float intendedPitchAngle = pitch*maxPitchAngle*Mathf.Deg2Rad;
roll = Mathf.Clamp((intendedRollAngle - m_Aeroplane.RollAngle), -1, 1);
pitch = Mathf.Clamp((intendedPitchAngle - m_Aeroplane.PitchAngle), -1, 1);

// similarly, the throttle axis input is considered to be the desired absolute value, not a relative change to current throttle.
float intendedThrottle = throttle*0.5f + 0.5f;
throttle = Mathf.Clamp(intendedThrottle - m_Aeroplane.Throttle, -1, 1);
}
}
}

最佳答案

遇到了类似的问题,通过简单地导入 Assets 就解决了。以下是步骤:

  1. 转到 Assets ->导入包->CrossPlatformInput
  2. 单击全部(或您需要的那个)
  3. 点击导入

enter image description here

关于c# - 当前上下文中不存在“CrossPlatformInputManager”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35386435/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com