c# - Unity 包错误 "the type of namespace could not be found"

标签 c# unity3d namespaces assets

嗨,我正在使用名为“Movement Animset Pro v1.693.unitypackage”的统一包进行统一角色移动,当我在统一中导入包时,所有的一切都很好,除了脚本文件它给我整个代码的错误我使用的最后一个统一版本,这是代码

//(c) 版权所有 HutongGames, LLC 2010-2011。版权所有。

    using UnityEngine;

    namespace HutongGames.PlayMaker.Actions
    {


[ActionCategory(ActionCategory.Transform)]
[Tooltip("Moves a Game Object towards a Target. Optionally sends an event when successful. Optionally set when to update, during regular update, lateUpdate or FixedUpdate. The Target can be specified as a Game Object or a world Position. If you specify both, then the Position is used as a local offset from the Object's Position.")]
public class MoveTowards2 : FsmStateAction
{
    public enum UpdateType {Update,LateUpdate,FixedUpdate};

    [RequiredField]
    public FsmOwnerDefault gameObject;

    public FsmGameObject targetObject;

    public FsmVector3 targetPosition;

    public FsmBool ignoreVertical;

    [HasFloatSlider(0, 20)]
    public FsmFloat maxSpeed;

    [HasFloatSlider(0, 5)]
    public FsmFloat finishDistance;

    public FsmEvent finishEvent;

    public UpdateType updateType;


    public override void Reset()
    {
        gameObject = null;
        targetObject = null;
        maxSpeed = 10f;
        finishDistance = 1f;
        finishEvent = null;
        updateType = UpdateType.Update;
    }

    public override void OnUpdate()
    {
        if (updateType == UpdateType.Update)
        {
            DoMoveTowards();
        }
    }

    public override void OnLateUpdate()
    {
        if (updateType == UpdateType.LateUpdate)
        {
            DoMoveTowards();
        }
    }

    public override void OnFixedUpdate()
    {
        //if (updateType == UpdateType.FixedUpdate)
        //{
            DoMoveTowards();
        //}
    }

    void DoMoveTowards()
    {
        var go = Fsm.GetOwnerDefaultTarget(gameObject);
        if (go == null)
        {
            return;
        }

        var goTarget = targetObject.Value;
        if (goTarget == null && targetPosition.IsNone)
        {
            return;
        }

        Vector3 targetPos;
        if (goTarget != null)
        {
            targetPos = !targetPosition.IsNone ? 
                goTarget.transform.TransformPoint(targetPosition.Value) : 
                goTarget.transform.position;
        }
        else
        {
            targetPos = targetPosition.Value;
        }

        if (ignoreVertical.Value)
        {
            targetPos.y = go.transform.position.y;
        }

        go.transform.position = Vector3.MoveTowards(go.transform.position, targetPos, maxSpeed.Value * Time.deltaTime);

        var distance = (go.transform.position - targetPos).magnitude;
        if (distance < finishDistance.Value)
        {
            Fsm.Event(finishEvent);
            Finish();
        }
    }

}
}

这是错误
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(11,30): error CS0246: The type or namespace name 'FsmStateAction' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(9,3): error CS0246: The type or namespace name 'ActionCategoryAttribute' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(9,3): error CS0246: The type or namespace name 'ActionCategory' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(9,18): error CS0103: The name 'ActionCategory' does not exist in the current context
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(10,3): error CS0592: Attribute 'Tooltip' is not valid on this declaration type. It is only valid on 'field' declarations.
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(35,24): error CS0115: 'MoveTowards2.Reset()': no suitable method found to override
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(45,24): error CS0115: 'MoveTowards2.OnUpdate()': no suitable method found to override
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(53,24): error CS0115: 'MoveTowards2.OnLateUpdate()': no suitable method found to override
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(61,24): error CS0115: 'MoveTowards2.OnFixedUpdate()': no suitable method found to override
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(15,4): error CS0246: The type or namespace name 'RequiredFieldAttribute' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(15,4): error CS0246: The type or namespace name 'RequiredField' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(16,10): error CS0246: The type or namespace name 'FsmOwnerDefault' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(18,10): error CS0246: The type or namespace name 'FsmGameObject' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(20,10): error CS0246: The type or namespace name 'FsmVector3' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(22,10): error CS0246: The type or namespace name 'FsmBool' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(24,4): error CS0246: The type or namespace name 'HasFloatSliderAttribute' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(24,4): error CS0246: The type or namespace name 'HasFloatSlider' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(25,10): error CS0246: The type or namespace name 'FsmFloat' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(27,4): error CS0246: The type or namespace name 'HasFloatSliderAttribute' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(27,4): error CS0246: The type or namespace name 'HasFloatSlider' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(28,10): error CS0246: The type or namespace name 'FsmFloat' could not be found (are you missing a using directive or an assembly reference?)
Assets\MovementAnimsetPro\PlayMakerAdditionalActions\PlayMaker\Actions\MoveTowards2.cs(30,10): error CS0246: The type or namespace name 'FsmEvent' could not be found (are you missing a using directive or an assembly reference?)

并且有 5 个具有相同错误的脚本.. 请帮忙

最佳答案

由于错误表明程序找不到像“FsmStateAction”这样的名称,请查看该名称的 Assets 并找到包含它的脚本,然后将脚本的命名空间放在代码的顶部,例如:

using someNamespace;

我可以看到你有一些覆盖错误,如果它们不是虚拟的,你不能覆盖这些方法,在你自己制作之前检查包的代码。

关于c# - Unity 包错误 "the type of namespace could not be found",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55163301/

相关文章:

unity3d - SceneManager LoadScene 在编辑器播放模式下不工作

android - Gradle 对 Unity 的依赖

PHP 命名空间自动加载

C# 正则表达式匹配字母、数字、下划线、破折号和点

c# - 从 System.Linq 导入类型如何向其他类添加方法?

c# - 通过 dotnet watch 热重载 blazor 不工作

c# - 如何将数组写入Excel列?

c# - 无法在 unity 5.6 中导入 Fabric

php - 在其他命名空间中使用多个类

wpf - 基类 `Application` 在一种解决方案中未被识别为类型