Segurar e lançar objeto 3D Mobile
2 participantes
Página 1 de 1
Segurar e lançar objeto 3D Mobile
Olá, estou com uma dúvida em um Script, eu precisava fazer com que a partir do momento que eu tocar um determinado objeto, ele venha até mim, acompanhe o player e em seguida após tocar novamente seja lançado, porém, sempre que eu clico no objeto, ele só vem até mim, mas ele fica parado no transform e não se move mais..
Alguém poderia dar uma luz?
Alguém poderia dar uma luz?
- Código:
[Header("Ref")]
public LayerMask layerM;
public Camera refCam;
public Transform destPoint;
[Header("Settings")]
public Vector3 Offset = Vector3.zero;
public float MoveSpeed = 10f;
public float RotateSpeed = 5f;
public float ThrowForce = 30f;
private Rigidbody curWeaponRgb;
private Transform curWeaponTrans;
private RaycastHit rayHitInTo;
private Ray ray;
private bool readyToDrag;
// Start is called before the first frame update
void Start()
{
readyToDrag = true;
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButton(0))
ray = refCam.ScreenPointToRay(Input.mousePosition);
if (Physics.Raycast(ray, out rayHitInTo, 20f, layerM, QueryTriggerInteraction.Ignore))
{
curWeaponRgb = rayHitInTo.rigidbody;
if (curWeaponRgb)
{
curWeaponTrans = curWeaponRgb.transform;
curWeaponRgb.useGravity = false;
curWeaponRgb.isKinematic = true;
curWeaponRgb.detectCollisions = false;
curWeaponTrans.DOMove(destPoint.position + Offset, 2f).SetEase(Ease.InOutSine);
Debug.Log(string.Format("Picked {0}", curWeaponRgb.name));
}
if (Input.GetMouseButtonUp(0))
{
if (curWeaponRgb)
{
curWeaponRgb.isKinematic = false;
curWeaponRgb.useGravity = true;
curWeaponRgb.detectCollisions = true;
//Throw it
curWeaponRgb.AddForceAtPosition(transform.forward * ThrowForce, curWeaponRgb.position, ForceMode.VelocityChange);
}
readyToDrag = false;
curWeaponRgb = null;
curWeaponTrans = null;
}
}
}
}
Re: Segurar e lançar objeto 3D Mobile
cria 2 boolenas pra isso, no primeiro clique vc transforma booleana1= true, ai no segundo clique vc coloca um if para verificar se booleana1 == true, e ele clicou novamente, ai booleana 2=true, e no update vc cria um if para verificar constantemente se a booleana2 ==true;
pelomenos eu faria assim....
no caso a lógica é:
pelomenos eu faria assim....
no caso a lógica é:
- Código:
if(clicou mouse no objeto)
{
if(booleana1 ==true)
{
boolena2 = true;
booleana1 = false;
}
else
{
pega objeto;
booleana1= true;
}
}
if(booleana2 == true)
{
lança objeto
booleana2 = false;
}

» Como lançar um objeto para um local via touch?
» Pegar objeto tocado em dispositivo mobile
» [mobile] selecionar objeto 3d usando Touch.
» Lançar Granada
» Quero setar uma variavel de um objeto para outros objetos , mas o objeto esta dentro de uma array desse objeto
» Pegar objeto tocado em dispositivo mobile
» [mobile] selecionar objeto 3d usando Touch.
» Lançar Granada
» Quero setar uma variavel de um objeto para outros objetos , mas o objeto esta dentro de uma array desse objeto
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos