2015-01-02 5 views
-1

현재 총을 쏜 사람이 문제를 해결하는 데 도움이되는 정보를 찾을 수 없습니다. 내 캐릭터가 쏠 때 내 캐릭터를 노크하게하고 싶을뿐만 아니라, 플레이어가 다른 무기를 사용할 때 넉백이 달라져서 자신을 촬영할 때 더블 점프를 할 수 있어야합니다. 예를 들어 플레이어가 무기 1을 사용할 때 넉백 2, weapon2 then 3.촬영시 넉백? Unity3D

이 간단한 질문에 대해 고맙고 죄송합니다. 배우기 시작했습니다.

마르셀

답변

2

당신은 각 무기 넉백 또는 반동 값 (아마 플로트) 줄 수 있습니다. 그런 다음 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) 
    } 
} 
+0

어떻게 것 같이 코드를 작성하지 않았나요? – Marlex

+0

@Marlex 내 대답이 업데이트되었습니다.이 코드는 거칠고 테스트되지 않았지만 그 뒤에있는 모든 이론이 연결을 설정해야합니다. 도움이 더 필요하다면 나중에 코드를 업데이트 할 수 있지만 순간에는 Unity에 액세스 할 수 없습니다. –