嗨,我正在使用名为“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/