Chacoalhar objeto
2 participantes
Página 1 de 1
Chacoalhar objeto
Estou fazendo uma fase em que a pessoa passa o dedo na tela (como se estivesse limpando uma sujeira) e o vidrinho fica balançando de acordo com a velocidade de passar o dedo, como posso fazer isso?
No caso eu gostaria de fazer o objeto chacoalhar enquanto o dedo estiver em cima do objeto, mas se der pra ajustar de acordo com a velocidade, melhor ainda :D
No caso eu gostaria de fazer o objeto chacoalhar enquanto o dedo estiver em cima do objeto, mas se der pra ajustar de acordo com a velocidade, melhor ainda :D
joaozinpedrin- Membro
- PONTOS : 885
REPUTAÇÃO : 1
Respeito as regras :
Re: Chacoalhar objeto
Bom, acho que você pode usar a posição do mouse como referência, inicialmente quando o botão do mouse fosse pressionado você poderia pegar a posição dele com Input.GetMouseButtonDown (0) (Input.MousePosition), depois pegar o valor atual da posição em que esta tocando no caso Input.GetMouseButton (0) (Input.MousePosition).
Fiz rapidamente o código pelo celular, espero que não tenha nenhum erro. No caso a variável float (distance) teria o valor da distancia entre o ponto A (startPosition) e B (endPosition), e com esse valor você poderia multiplicar pela intensidade de chacoalho do seu objeto (caso você não tenha o script de chacoalho acredito que se pesquisar por "Unity shake object" deve aparecer bons exemplos). Acredito que deve servir pois se você pressionar na tela e ficar passando o dedo de um lado para o outro a distancia vai aumentar e diminuir, logo gerando o efeito.
- Código:
Vector3 startPosition;
Vector3 endPosition;
void Update () {
if (Input.GetMouseButtonDown (0)) {
startPosition = Input.mousePosition;
}
if (Input.GetMouseButton (0)) {
endPosition = Input.mousePosition;
}
float distance = Vector2.Distance (startPosition, endPosition);
}
Fiz rapidamente o código pelo celular, espero que não tenha nenhum erro. No caso a variável float (distance) teria o valor da distancia entre o ponto A (startPosition) e B (endPosition), e com esse valor você poderia multiplicar pela intensidade de chacoalho do seu objeto (caso você não tenha o script de chacoalho acredito que se pesquisar por "Unity shake object" deve aparecer bons exemplos). Acredito que deve servir pois se você pressionar na tela e ficar passando o dedo de um lado para o outro a distancia vai aumentar e diminuir, logo gerando o efeito.
Última edição por rafaelllsd em Qui 3 Fev - 18:54, editado 1 vez(es)
rafaelllsd- ProgramadorMaster
-
PONTOS : 4888
REPUTAÇÃO : 507
Idade : 23
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :
Re: Chacoalhar objeto
nao é bem isso que preciso, mas valeu a ajuda! to tentando mais fazer o object chacoalhar enquanto estou com o dedo em cima do objeto etc, to tentando usar isso mas nao consigo fazer ele girar pro outro lado e por ai vai..:
if(chacoalhar) {
tubo.transform.rotation = Quaternion.Euler(0, 0, 1000*Time.deltaTime);
}
if(chacoalhar) {
tubo.transform.rotation = Quaternion.Euler(0, 0, 1000*Time.deltaTime);
}
joaozinpedrin- Membro
- PONTOS : 885
REPUTAÇÃO : 1
Respeito as regras :
Re: Chacoalhar objeto
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ShakeObject : MonoBehaviour {
[SerializeField] private float speed;
private void Update () {
if (Input.GetMouseButton(0)) {
Vector3 mousePosition = new Vector3(Input.GetAxis("Mouse Y"),Input.GetAxis("Mouse X"), 0);
Vector3 direction = (mousePosition - transform.position).normalized;
Quaternion finalRotation = Quaternion.RotateTowards (transform.rotation, Quaternion.FromToRotation (Vector3.right, direction), speed * Time.deltaTime);
finalRotation.x = 0;
finalRotation.y = 0;
transform.rotation = finalRotation;
}else {
transform.rotation = Quaternion.RotateTowards (transform.rotation,Quaternion.identity, speed * Time.deltaTime);
}
}
}
rafaelllsd- ProgramadorMaster
-
PONTOS : 4888
REPUTAÇÃO : 507
Idade : 23
Áreas de atuação : Unity, Audacity, Blender, Gimp, C#, JS, MySQL.
Respeito as regras :

» Quero setar uma variavel de um objeto para outros objetos , mas o objeto esta dentro de uma array desse objeto
» Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
» Como fazer o objeto emitido pela partícula ser direcionado até outro objeto
» Como mover um objeto para outro objeto (Navmesh ?)
» Como mudar rotacao de um objeto em relacao a posicao do outro objeto
» Como fazer para interagir um objeto com um outro objeto [Estilo Granny]
» Como fazer o objeto emitido pela partícula ser direcionado até outro objeto
» Como mover um objeto para outro objeto (Navmesh ?)
» Como mudar rotacao de um objeto em relacao a posicao do outro objeto
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos