Среда, 04 Декабря 2024, 22:27

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Помощь с переводом скрипта C# на JS !
FratyzДата: Понедельник, 09 Июля 2012, 14:37 | Сообщение # 1
был не раз
Сейчас нет на сайте
В общем есть нужный мне скрипт он написан на C# в котором я не шарю!
Нужно перевести его на JS(кому не лень biggrin ) или просто объяснить принцип работы!
Скрипт:
Code
using UnityEngine;
using System.Collections;

public class CamAnimController : MonoBehaviour {
  public static CamAnimController self;
  public float k = 0;
  public AudioClip StepSound;
  public float[] nextTimes = new float[]{1},delays = new float[]{1};
  public bool grounded;
   
  bool jumped,groundFirst;
  CharacterMotor motor;
  void Awake () {
   self = this;
   motor = transform.parent.GetComponent<CharacterMotor>();
  }
  void Start () {
   System.DateTime t = System.DateTime.Now;
   UnityEngine.Random.seed = t.Month + t.Day + t.Minute + t.Second;
  }
  void Animate () {   
   animation.Play("CamShake");
  }
  void StepSounds () {
   if(nextTimes[0]<Time.time){
    Footstep();
    nextTimes[0] = Time.time + delays[0];
   }
  }
  void Footstep () {
   if(grounded){
    audio.clip = StepSound;
    audio.pitch = Random.Range(0.9f,1.1f);
    audio.Play();
   }
  }
  void Update () {
   if(Input.GetAxis("Vertical")!=0){
    if(grounded){
     Animate();
    }
    StepSounds();
    transform.localPosition = new Vector3 (0,k,0);
   }
   else{
    animation.Stop();
   }
   RaycastHit hit;
   Vector3 fwd = transform.TransformDirection(Vector3.forward);
   if(Physics.Raycast(transform.position,fwd,out hit)){
    if(hit.distance<1f){
     animation.Stop();
    }
   }
   grounded = motor.grounded;
    
   if(Input.GetButtonDown("Jump")){
    StartCoroutine(SetJumpedAfterFrame());
   }
   if(jumped){
    if(grounded){
     StartCoroutine(SetJumpedAfterFrame());
    }
   }
  }
   
  IEnumerator SetJumpedAfterFrame () {
   yield return new WaitForEndOfFrame();
   jumped = true;
  }
   
}

Зарание всем спс!)
SarCasmДата: Понедельник, 09 Июля 2012, 14:40 | Сообщение # 2
заслуженный участник
Сейчас нет на сайте
перевод заключается в том что переменные по другому записываются:
Code
public AudioClip StepSound;
==
Code
var StepSound:AudioClip;

вместо void - function


Моя игра Gamiron#11 - Тема Скачать
FratyzДата: Понедельник, 09 Июля 2012, 15:41 | Сообщение # 3
был не раз
Сейчас нет на сайте
Quote (SarCasm)
перевод заключается в том что переменные по другому записываются

спс щас попробуем!

Добавлено (09.07.2012, 15:16)
---------------------------------------------
и сразу вопрос как быть с этим:
Code
public static CamAnimController self;

Добавлено (09.07.2012, 15:41)
---------------------------------------------
И всеже я не могу все перевести, помогите!

Сообщение отредактировал Fratyz - Понедельник, 09 Июля 2012, 15:23
SarCasmДата: Понедельник, 09 Июля 2012, 15:43 | Сообщение # 4
заслуженный участник
Сейчас нет на сайте
Quote
public static CamAnimController self;

static var self:CamAnimController;
??


Моя игра Gamiron#11 - Тема Скачать
FratyzДата: Понедельник, 09 Июля 2012, 15:56 | Сообщение # 5
был не раз
Сейчас нет на сайте
нет там еще с ray cast'om , vector3'om , и полностью не понимаю последнюю функцию!
Code
    IEnumerator SetJumpedAfterFrame () {
   yield return new WaitForEndOfFrame();
   jumped = true;
  }
   
}

Code
RaycastHit hit;
   Vector3 fwd = transform.TransformDirection(Vector3.forward);
   if(Physics.Raycast(transform.position,fwd,out hit)){
    if(hit.distance<1f){
     animation.Stop();
    }
   }
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг