Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 向前伸展我的旋转球员_C#_Unity3d_Sprite - Fatal编程技术网

C# 向前伸展我的旋转球员

C# 向前伸展我的旋转球员,c#,unity3d,sprite,C#,Unity3d,Sprite,我正在尝试重新创建一个运动系统,以便在我的游戏中使用。这是一款DS游戏,名为《龙之旅英雄火箭黏液》,玩家可以做的一件事就是按下a按钮,朝一个方向移动,以拉伸黏液。放松一段时间拉伸会使他们的粘液朝着拉伸的方向脱落 下面是一个gif,它显示了: 我为玩家准备了一堆状态枚举(行走、空闲、拉伸、爆破(拉伸后))。当玩家拉伸(空闲时按住空格)时,他们会按输入的方向旋转,但我不确定如何在该方向缩放对象 我的玩家精灵嵌套在一个空的游戏对象中,允许我从一侧缩放它(通过偏移玩家并缩放游戏对象)。我将播放器朝着输

我正在尝试重新创建一个运动系统,以便在我的游戏中使用。这是一款DS游戏,名为《龙之旅英雄火箭黏液》,玩家可以做的一件事就是按下a按钮,朝一个方向移动,以拉伸黏液。放松一段时间拉伸会使他们的粘液朝着拉伸的方向脱落

下面是一个gif,它显示了:

我为玩家准备了一堆状态枚举(行走、空闲、拉伸、爆破(拉伸后))。当玩家拉伸(空闲时按住空格)时,他们会按输入的方向旋转,但我不确定如何在该方向缩放对象

我的玩家精灵嵌套在一个空的游戏对象中,允许我从一侧缩放它(通过偏移玩家并缩放游戏对象)。我将播放器朝着输入方向旋转,但我不完全确定如何按照示例gif中所示的方向向前缩放播放器

if (curState == state.stretching)
{
    rBody.velocity = new Vector2(0,0); //so we don't keep our momentum if we try to stretch while walking
    transform.rotation = Quaternion.LookRotation(playerBody.transform.up, input);
    transform.localScale = ///??

    if (input.magnitude > 0)
    {
        pVelocity = Vector2.ClampMagnitude(pVelocity + input / 2, 25);
    }
    else
    {
        pVelocity *= new Vector2(2, 2) * Time.deltaTime;
    }
}

看起来我有点傻

如果当我的球员旋转时,我在他的轴上看了超过一秒钟,我会看到Y始终是他面对的方向,所以我所要做的就是在Y轴上缩放

固定代码:

    if (curState == state.stretching)
    {

        rBody.velocity = new Vector2(0,0); //so we don't keep our momentum if we try to stretch while walking
        transform.rotation = Quaternion.LookRotation(playerBody.transform.forward, input);
        transform.localScale = new Vector3(1,1+pVelocity.magnitude/8,1);
        //we move back as the player scales
        transform.position = orgPos + new Vector3(pVelocity.x/8,pVelocity.y/8,0);

        if (input.magnitude > 0)
        {
            pVelocity = Vector2.ClampMagnitude(pVelocity + input / 2, 25);

        }
        else
        {
            pVelocity *= new Vector2(2, 2) * Time.deltaTime;
        }
    }