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