Мой пример кода:
Синтаксис:
Используется csharp
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MoveHero : MonoBehaviour
{
public bool idle = true;
public bool walk = false;
public float heroSpeed = 5f;
Animator anim;
SettingMain set;
private void Awake()
{
anim = GetComponent<Animator>();
set = new SettingMain();
}
private void Start()
{
HeroIdle();
}
private void Update()
{
if (Input.GetKey(set.moveRightKey))
{
HeroMove();
}
else
{
HeroIdle();
}
}
private void HeroMove()
{
anim.speed = heroSpeed;
anim.Play("walk_foot");
anim.Play("walk_hand");
transform.position += new Vector3(0, 0, 1) * heroSpeed * Time.deltaTime;
idle = false;
walk = true;
}
private void HeroIdle()
{
anim.speed = heroSpeed;
anim.Play("idle_foot");
anim.Play("idle_hand");
idle = true;
walk = false;
}
}
using System.Collections.Generic;
using UnityEngine;
public class MoveHero : MonoBehaviour
{
public bool idle = true;
public bool walk = false;
public float heroSpeed = 5f;
Animator anim;
SettingMain set;
private void Awake()
{
anim = GetComponent<Animator>();
set = new SettingMain();
}
private void Start()
{
HeroIdle();
}
private void Update()
{
if (Input.GetKey(set.moveRightKey))
{
HeroMove();
}
else
{
HeroIdle();
}
}
private void HeroMove()
{
anim.speed = heroSpeed;
anim.Play("walk_foot");
anim.Play("walk_hand");
transform.position += new Vector3(0, 0, 1) * heroSpeed * Time.deltaTime;
idle = false;
walk = true;
}
private void HeroIdle()
{
anim.speed = heroSpeed;
anim.Play("idle_foot");
anim.Play("idle_hand");
idle = true;
walk = false;
}
}
Хочется реализовать чтоб персонаж не резко с места стартовал, а плавно разгонялся.