Jump to content
Sign in to follow this  
xcqoax

Problemas Raycast script c#

Recommended Posts

saludos,  por cuestion de proyecto debo cambiar a c#,  como ven tengo un  script de JS, mi problema es que se me complica un poco el como podria cambiarlo a c#.  agradeceria si alguieme  apoyase con el codigo que he intentado hacer..

var distancia : float =5;
var cubo: Transform;

function Update()
{
var hit: RaycastHit;
if(Physics.Raycast(transform.position, Vector3.forward,hit,distancia))
   {
   if(hit.collider.gameObject.tag=="sofa");
      {
      cubo.gameObject.SetActive(false);
      }
   }
}

-----------en c#-------------------

using UnityEngine;
using System.Collections;

public class NewBehaviourScript : MonoBehaviour
{

    void Update ()
    {
        Transform cubo; // dado q en js se antepone la palabra "var", luego el nombre de la variable y de ultimo el tipo de variable, yo lo coloque de lamanera q se hace en c# el tipo de var y el nombre...
        RaycastHit hit;
        float distancia;
        if(Physics.Raycast(transform.position, Vector3.forward,out hit,distancia))
            {
                if(hit.collider.gameObject.tag=="cubo");   // mi problema es hacer que si la variable hot colisiona con el objeto q tiene la etiqueta cubo...
                {
                    cubo.gameObject.SetActive(false);
                }
            }
    }
}

agradecere sus comentarios, de este modo ire aprendiendo a que si solo pido el script.. saludos

Share this post


Link to post
Share on other sites

perdon, en el ejemplo de JS la etiqueta era cubo.  y para JS agregaba el objeto cubo con la sentencia "var : transform;"

pero  en c#, de acuerdo a la sintaxis se maneja como "tipo variable-nombre de la variable"; por lo que yo coloque como Transform cubo;

 

Share this post


Link to post
Share on other sites

jajajajajajajajajajajaja como ver la conversacion entre un español y un chino jajajajajajajajajaja

el español (o chino, tampoco es que sea racista) pregunta ...

Donde se asigna cubo?

a lo que el otro responde ...

perdon, en el ejemplo de JS la etiqueta era cubo.  y para JS agregaba el objeto cubo con la sentencia "var : transform;"

pero  en c#, de acuerdo a la sintaxis se maneja como "tipo variable-nombre de la variable"; por lo que yo coloque como Transform cubo;

parece un chiste jajajajajajajajaja

pero vamos, que lo que se entiende es que no tiene ni puta idea de lo que le has preguntado

Share this post


Link to post
Share on other sites

para eso estoy aca  para aprender, en lugar de estar con las ofensas bien pudiese tener la amabilidad de ayudar porque al final en algun punto necesitaras ayuda de alguien y lo que menos esperaras es que se burlen de ti. muchas gracias por tu comentario algo fuera de lugar pero gracias. saludos

Share this post


Link to post
Share on other sites

para eso estoy aca  para aprender, en lugar de estar con las ofensas bien pudiese tener la amabilidad de ayudar porque al final en algun punto necesitaras ayuda de alguien y lo que menos esperaras es que se burlen de ti. muchas gracias por tu comentario algo fuera de lugar pero gracias. saludos

Ni caso, a lo nuestro. A ver, necesitar asignar la Transform del cubo, ya que está vacía. Cuando intentes acceder, pues problema.

Lo más normal es que sea public y la asignes en el Editor a un cubo existente, el que quieras desactivar.

Share this post


Link to post
Share on other sites

Tú codigo js, (forma simplificada sin el bloque 'class'):

var distancia : float =5;
var cubo: Transform;

function Update()
{
var hit: RaycastHit;
if(Physics.Raycast(transform.position, Vector3.forward,hit,distancia))
   {
   if(hit.collider.gameObject.tag=="sofa");
      {
      cubo.gameObject.SetActive(false);
      }
   }
}

Código js completo, con el bloque class:

#pragma strict

//Si no se especifica nada, todo es publico
class javascript extends MonoBehaviour{

	var distancia : float =5;
	var cubo: Transform;

	function Update()
	{
		var hit: RaycastHit;
		if(Physics.Raycast(transform.position, Vector3.forward,hit,distancia))
		{
		   if(hit.collider.gameObject.tag=="sofa");
		   {
		      	cubo.gameObject.SetActive(false);
		   }
	   }
	}
}

 

Código en cs:

using UnityEngine;
using System.Collections;

//Si no se especifica nada, todo es privado 
public class cscript : MonoBehaviour {

	//No se puede utilizar 'var' en variables fuera de una funcion
	public float distancia = 5f;
	public Transform cubo;


	
	void Update() //Sustituir 'function' por 'void'
	{
		RaycastHit hit; //No se asigna un valor(inicializar), no se puede utilizar 'var'
		if(Physics.Raycast(transform.position, Vector3.forward,out hit,distancia))
		{
			if(hit.transform.tag.Equals("sofa"));
			{
				cubo.gameObject.SetActive(false);
			}
		}
	}
}

 

Share this post


Link to post
Share on other sites
Sign in to follow this  

UnitySpain © Todos los derechos reservados 2020
×
×
  • Create New...