[Dúvida] Como fazer um corpo rígido receber velocidade em direção ao mouse.
2 participantes
Página 1 de 1
[Dúvida] Como fazer um corpo rígido receber velocidade em direção ao mouse.
Bom, postei ontem uma dúvida aqui, já que ninguém respondeu eu resolvi tentar fazer sozinho.
Resultado = Consegui o resultado que queria, porém ainda falta fazer com que o projétil seja direcionado a altura do mouse.
Preciso fazer com que na void "knifeThrowed" o knifeBody.velocity receba uma velocidade em direção a altura do mouse.
Resultado = Consegui o resultado que queria, porém ainda falta fazer com que o projétil seja direcionado a altura do mouse.
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playerAttack : MonoBehaviour {
private Rigidbody2D knifeBody;
public float knifeSpeed, rotateSpeed;
public bool lever;
public Transform hand;
void Start () {
knifeBody = GameObject.FindGameObjectWithTag ("knife").GetComponent<Rigidbody2D> ();
}
void FixedUpdate(){
if (lever == true) {
knifeThrowed ();
}
}
void Update(){
if (knifeSpeed < 0.5F) {
knifeSpeed = 0;
}
if (knifeSpeed == 0 && lever == true) {
lever = false;
knifeThrowed ();
}
if (Input.GetKeyDown (KeyCode.Space)) {
lever = true;
}
if (lever == false && knifeSpeed != 0) {
knifeBody.transform.SetParent (hand);
} else {
knifeBody.transform.SetParent (null);
}
}
void knifeThrowed () {
rotateSpeed = Mathf.Lerp (rotateSpeed, 0, Time.deltaTime*3);
knifeSpeed = Mathf.Lerp (knifeSpeed, 0, Time.deltaTime*3);
knifeBody.velocity = Vector2.right * knifeSpeed;
knifeBody.GetComponent<Transform> ().Rotate (new Vector3(0,0,1*rotateSpeed));
}
}
Preciso fazer com que na void "knifeThrowed" o knifeBody.velocity receba uma velocidade em direção a altura do mouse.
ScorpionG4mer- Avançado
- PONTOS : 3445
REPUTAÇÃO : 45
Áreas de atuação : Inciante no C#, Arruaceiro no Blender
Respeito as regras :
Re: [Dúvida] Como fazer um corpo rígido receber velocidade em direção ao mouse.
ScorpionG4mer escreveu:Bom, postei ontem uma dúvida aqui, já que ninguém respondeu eu resolvi tentar fazer sozinho.
Resultado = Consegui o resultado que queria, porém ainda falta fazer com que o projétil seja direcionado a altura do mouse.No meu jogo o personagem usa uma faca, então não é nada instanciado, ele sempre usa a mesma arma;
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class playerAttack : MonoBehaviour {
private Rigidbody2D knifeBody;
public float knifeSpeed, rotateSpeed;
public bool lever;
public Transform hand;
void Start () {
knifeBody = GameObject.FindGameObjectWithTag ("knife").GetComponent<Rigidbody2D> ();
}
void FixedUpdate(){
if (lever == true) {
knifeThrowed ();
}
}
void Update(){
if (knifeSpeed < 0.5F) {
knifeSpeed = 0;
}
if (knifeSpeed == 0 && lever == true) {
lever = false;
knifeThrowed ();
}
if (Input.GetKeyDown (KeyCode.Space)) {
lever = true;
}
if (lever == false && knifeSpeed != 0) {
knifeBody.transform.SetParent (hand);
} else {
knifeBody.transform.SetParent (null);
}
}
void knifeThrowed () {
rotateSpeed = Mathf.Lerp (rotateSpeed, 0, Time.deltaTime*3);
knifeSpeed = Mathf.Lerp (knifeSpeed, 0, Time.deltaTime*3);
knifeBody.velocity = Vector2.right * knifeSpeed;
knifeBody.GetComponent<Transform> ().Rotate (new Vector3(0,0,1*rotateSpeed));
}
}
Preciso fazer com que na void "knifeThrowed" o knifeBody.velocity receba uma velocidade em direção a altura do mouse.
Eae Scorpion beleza, cara eu tbm tenho serias duvidas em questão de programação mais infelizmente o pessoal fica mais offline do que mesmo mexendo com o Unity bem
Eu tentei aqui no meu tambem no meu caso eu fiz um game Isometrico ou seja ele tem uma camera Top Down e consegui rotacionar meu player pelo seguinte Script se caso for esse script que vc procura entao achou, agora se vc quiser colocar a faca no personagem só vai precisar acrescentar ele ao script do personagem. :D
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class OlharMouse : MonoBehaviour {
void Update () {
RaycastHit hit;
Ray ray = Camera.main.ScreenPointToRay (Input.mousePosition);
if (Physics.Raycast (ray, out hit, 100)) {
transform.LookAt (new Vector3(hit.point.x,transform.localPosition.y,hit.point.z));
}
}
}
EvertonSantos- Iniciante
- PONTOS : 2631
REPUTAÇÃO : 1
Idade : 27
Áreas de atuação : Modelagem iniciante, programação iniciante e desenvolvedor iniciante.
Respeito as regras :
Tópicos semelhantes
» como fazer o corpo se mover junto com a roupa do personagem ?
» [DUVIDA]como girar sprite somente no eixo X em direção do mouse
» [Duvida] Duvida Com script de mover em direção ao mouse.
» Duvida usar posicao do mouse para mudar direcao de Ray
» como posso fazer um corpo perder a animação
» [DUVIDA]como girar sprite somente no eixo X em direção do mouse
» [Duvida] Duvida Com script de mover em direção ao mouse.
» Duvida usar posicao do mouse para mudar direcao de Ray
» como posso fazer um corpo perder a animação
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos