현재 총을 쏜 사람이 문제를 해결하는 데 도움이되는 정보를 찾을 수 없습니다. 내 캐릭터가 쏠 때 내 캐릭터를 노크하게하고 싶을뿐만 아니라, 플레이어가 다른 무기를 사용할 때 넉백이 달라져서 자신을 촬영할 때 더블 점프를 할 수 있어야합니다. 예를 들어 플레이어가 무기 1을 사용할 때 넉백 2, weapon2 then 3.촬영시 넉백? Unity3D
이 간단한 질문에 대해 고맙고 죄송합니다. 배우기 시작했습니다.
마르셀
현재 총을 쏜 사람이 문제를 해결하는 데 도움이되는 정보를 찾을 수 없습니다. 내 캐릭터가 쏠 때 내 캐릭터를 노크하게하고 싶을뿐만 아니라, 플레이어가 다른 무기를 사용할 때 넉백이 달라져서 자신을 촬영할 때 더블 점프를 할 수 있어야합니다. 예를 들어 플레이어가 무기 1을 사용할 때 넉백 2, weapon2 then 3.촬영시 넉백? Unity3D
이 간단한 질문에 대해 고맙고 죄송합니다. 배우기 시작했습니다.
마르셀
당신은 각 무기 넉백 또는 반동 값 (아마 플로트) 줄 수 있습니다. 그런 다음 Shoot가 해당 무기에서 호출되면 플레이어에서 KnockBack (부동 소수점) 메서드를 호출 할 수 있습니다. 그러면 Rigdigbody.AddForce()를 사용하여 플레이어의 뒤쪽 방향으로 플레이어에 힘을 추가 할 수 있습니다.
당신의 넉백 코드는 플레이어에 의해 처리되며 각 무기는 자신의 넉백 양을 유지합니다. 이것은 당신이 그것을하고자한다면 픽업 등에 의존하는 승수와 같은 일을 할 수있는 능력을 제공해야합니다.
코드가 아래와 유사하다고 생각합니다. 나는이 코드를 테스트하지 않았고 기본 텍스트 편집기에서 그 코드를 사용하여 복사 및 붙여 넣기가 작동하지 않을 수도 있지만 논리는 그대로 유지됩니다. 무기를 플레이어와 연결하는 방법을 결정해야하지만 그 내용은 문제의 범위를 벗어납니다.
Weapon.cs
using System.Collections;
public class Weapon
{
private int damage;
private float knockbackAmount;
private Player ownerPlayer;
public Weapon(Player ownerPlayer)
{
damage = 5;
knockback = 5.0f;
this.ownerPlayer = ownerPlayer;
}
public void Shoot()
{
// do the shooting
ownerPlayer.Knockback(knockbackAmount);
}
}
Player.cs
using UnityEngine;
using System.Collections;
public class Player : MonoBehaviour
{
private int health;
public Player()
{
health = 100;
}
public void Knockback(float amount)
{
gameObject.rigidbody.AddForce(Vector3.back * amount)
}
}
어떻게 것 같이 코드를 작성하지 않았나요? – Marlex
@Marlex 내 대답이 업데이트되었습니다.이 코드는 거칠고 테스트되지 않았지만 그 뒤에있는 모든 이론이 연결을 설정해야합니다. 도움이 더 필요하다면 나중에 코드를 업데이트 할 수 있지만 순간에는 Unity에 액세스 할 수 없습니다. –