QUE ? Porque não funcionou ? :(
3 participantes
Página 1 de 1
QUE ? Porque não funcionou ? :(
Eu estou usando GameManager para comandar objetos com ScriptableObject, logo eu não posso fazer animação da minha serra, então coloquei o seguinte código simples no script dela e não funcionou:
private void ToSaw1()
{
posy = vel;
if(saw1.transform.position.y >= 112.14)
{
posy = vel - 1;
}
if(saw1.transform.position.y <= 97.55)
{
posy = vel + 1;
}
}
e não foi só esse que eu testei, agora nem se movendo tá,instancia inclusive em um local que não tem nd haver, qual seria a forma correta ? por favor.
private void ToSaw1()
{
posy = vel;
if(saw1.transform.position.y >= 112.14)
{
posy = vel - 1;
}
if(saw1.transform.position.y <= 97.55)
{
posy = vel + 1;
}
}
e não foi só esse que eu testei, agora nem se movendo tá,instancia inclusive em um local que não tem nd haver, qual seria a forma correta ? por favor.
Wily- Membro
- PONTOS : 1624
REPUTAÇÃO : 0
Respeito as regras :
Re: QUE ? Porque não funcionou ? :(
Wily escreveu:Eu estou usando GameManager para comandar objetos com ScriptableObject, logo eu não posso fazer animação da minha serra, então coloquei o seguinte código simples no script dela e não funcionou:
private void ToSaw1()
{
posy = vel;
if(saw1.transform.position.y >= 112.14)
{
posy = vel - 1;
}
if(saw1.transform.position.y <= 97.55)
{
posy = vel + 1;
}
}
e não foi só esse que eu testei, agora nem se movendo tá,instancia inclusive em um local que não tem nd haver, qual seria a forma correta ? por favor. A intenção é a serra subir e descer.
Wily- Membro
- PONTOS : 1624
REPUTAÇÃO : 0
Respeito as regras :
Re: QUE ? Porque não funcionou ? :(
Poste o código por completo por favor, trechos soltos assim não fazem sentido para a gente e não podemos te ajudar muito com isso..
NKKF- ProgramadorMaster
- PONTOS : 4817
REPUTAÇÃO : 574
Idade : 20
Áreas de atuação : Desenvolvedor na Unity, NodeJS, React, ReactJS, React Native, MongoDB e Firebase.
Respeito as regras :
Re: QUE ? Porque não funcionou ? :(
desculpa, aqui o código completo, eu mudei algo naquela parte:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Saws : ScriptableObject
{
private GameObject saw1 = null;
private float posx;
private float posy;
private float vel;
public void Init()
{
posx = -8.12f;
posy = 112.14f;
vel = 0.1f;
saw1 = Resources.Load("Saw1") as GameObject;
saw1 = Instantiate(saw1, new Vector3(posx, posy, 1), Quaternion.identity);
}
public void MoveSaw1()
{
this.ToSaw1();
saw1.transform.position = new Vector3(posx, posy, saw1.transform.position.z);
}
public void ToSaw1()
{
posy = posy + vel;
if(posy == 112)
{
posy = posy - 1;
}
if(posy == 97)
{
posy = posy + 1;
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Saws : ScriptableObject
{
private GameObject saw1 = null;
private float posx;
private float posy;
private float vel;
public void Init()
{
posx = -8.12f;
posy = 112.14f;
vel = 0.1f;
saw1 = Resources.Load("Saw1") as GameObject;
saw1 = Instantiate(saw1, new Vector3(posx, posy, 1), Quaternion.identity);
}
public void MoveSaw1()
{
this.ToSaw1();
saw1.transform.position = new Vector3(posx, posy, saw1.transform.position.z);
}
public void ToSaw1()
{
posy = posy + vel;
if(posy == 112)
{
posy = posy - 1;
}
if(posy == 97)
{
posy = posy + 1;
}
}
}
Wily- Membro
- PONTOS : 1624
REPUTAÇÃO : 0
Respeito as regras :
Re: QUE ? Porque não funcionou ? :(
O código do GameManager, que é MonoBehaviour:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
Coelho coelho;
Saws saw1;
void Start()
{
coelho = ScriptableObject.CreateInstance<Coelho>();
coelho.Init();
coelho.posx = 0;
coelho.posy = -4;
coelho.velx = 0.01f;
coelho.vely = 0.01f;
saw1 = ScriptableObject.CreateInstance<Saws>();
saw1.Init();
}
void Update()
{
coelho.Move();
if(coelho != null)
{
coelho.TurnRunning();
}
if (Input.GetKey(KeyCode.LeftArrow)
|| Input.GetKey(KeyCode.A))
{
coelho.TurnLeft();
}
if (Input.GetKey(KeyCode.RightArrow)
|| Input.GetKey(KeyCode.D))
{
coelho.TurnRight();
}
if(coelho != null)
{
coelho.MoveCamera();
}
if(saw1 != null)
{
saw1.MoveSaw1();
}
}
}
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
Coelho coelho;
Saws saw1;
void Start()
{
coelho = ScriptableObject.CreateInstance<Coelho>();
coelho.Init();
coelho.posx = 0;
coelho.posy = -4;
coelho.velx = 0.01f;
coelho.vely = 0.01f;
saw1 = ScriptableObject.CreateInstance<Saws>();
saw1.Init();
}
void Update()
{
coelho.Move();
if(coelho != null)
{
coelho.TurnRunning();
}
if (Input.GetKey(KeyCode.LeftArrow)
|| Input.GetKey(KeyCode.A))
{
coelho.TurnLeft();
}
if (Input.GetKey(KeyCode.RightArrow)
|| Input.GetKey(KeyCode.D))
{
coelho.TurnRight();
}
if(coelho != null)
{
coelho.MoveCamera();
}
if(saw1 != null)
{
saw1.MoveSaw1();
}
}
}
Wily- Membro
- PONTOS : 1624
REPUTAÇÃO : 0
Respeito as regras :
Re: QUE ? Porque não funcionou ? :(
Tente isso:
- Código:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Saws : ScriptableObject {
GameObject saw1;
float posx;
float posy;
float vel;
bool subindo = false;
public void Init() {
posx = -8.12f;
posy = 112.14f;
vel = 0.1f;
saw1 = Resources.Load("Saw1") as GameObject;
saw1 = Instantiate(saw1, new Vector3(posx, posy, 1), Quaternion.identity);
}
public void MoveSaw1() {
float finalYPos = CalcDif();
Vector3 finalPos = new Vector3(posx, finalYPos, saw1.transform.position.z);
saw1.transform.position = finalPos;
}
float CalcDif() {
if (posy >= 112) {
subindo = false;
}
if (posy <= 97) {
subindo = true;
}
if (subindo) {
posy = posy + vel * Time.deltaTime;
} else {
posy = posy - vel * Time.deltaTime;
}
return posy;
}
}
Tópicos semelhantes
» Porque o meu BoxCollider2D não desativa?
» Porque o meu gameobject desaparece?
» porquê deste erro ! ??
» Porque acontecesse isso ?
» Porque meu objeto não está sendo ativado? unity 2D
» Porque o meu gameobject desaparece?
» porquê deste erro ! ??
» Porque acontecesse isso ?
» Porque meu objeto não está sendo ativado? unity 2D
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos