Простой скрипт для камеры

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Простой скрипт для камеры

Сообщение xcube 31 окт 2012, 15:53

Помогите перевести Java скрипт в C#
Скрипт простой но очень хороший, он предназначен для 2D камер, скрипт отслеживает объект и камера плавно следит за объектом
Синтаксис:
Используется javascript
#pragma strict

var target : Transform;
var smoothTime = 0.5;
private var thisTransform : Transform;
private var velocity : Vector2;

function Start()
{
    thisTransform = transform;
}

function Update()
{
    thisTransform.position.x = Mathf.SmoothDamp( thisTransform.position.x,
       target.position.x, velocity.x, smoothTime);

    thisTransform.position.y = Mathf.SmoothDamp( thisTransform.position.y,
       target.position.y+10, velocity.y, smoothTime);
}

Сам я уже пробовал перевести, вот рез-тат:

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class Cam : MonoBehaviour
{
    public Transform target;
    public float smoothTime = 0.5f; //this might be a dobbelt
    private Transform thisTransform;
    private Vector2 velocity;

    void Start()
    {
       thisTransform = transform;
    }

    void Update()
    {
       
        thisTransform.position = new Vector3(Mathf.SmoothDamp( thisTransform.position.x,
        target.position.x, ref velocity.x, smoothTime), 0, 0);

        thisTransform.position = new Vector3(0, Mathf.SmoothDamp( thisTransform.position.y,
        target.position.y, ref velocity.y, smoothTime), 0);
    }
}
 

ошибок компилятор не выдает, но камера почему-то постоянно дергается, пол дня уже угробил на это дело, подскажите что не так или может на шарпе вобще по другому надо делать?
Изображение
Аватара пользователя
xcube
UNITрон
 
Сообщения: 304
Зарегистрирован: 23 сен 2011, 12:20
Откуда: Spb

Re: Простой скрипт для камеры

Сообщение mrcoder 31 окт 2012, 16:53

xcube писал(а):ошибок компилятор не выдает, но камера почему-то постоянно дергается, пол дня уже угробил на это дело, подскажите что не так или может на шарпе вобще по другому надо делать?


как именно дергается?
может при переводе не учли тип чисел. например не float а int.
Аватара пользователя
mrcoder
Старожил
 
Сообщения: 704
Зарегистрирован: 28 июн 2012, 22:40

Re: Простой скрипт для камеры

Сообщение Syberex 31 окт 2012, 19:36

Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class Cam : MonoBehaviour
{
     public Transform target;
     public float smoothTime = 0.5f; //this might be a dobbelt
     private Transform thisTransform;
     private Vector2 velocity;

     void Start()
     {
        thisTransform = transform;
     }

     void Update()
     {
         
         thisTransform.position = new Vector3(
             Mathf.SmoothDamp( thisTransform.position.x, target.position.x, ref velocity.x, smoothTime),
             Mathf.SmoothDamp( thisTransform.position.y, target.position.y, ref velocity.y, smoothTime),
             thisTransform.position.z);
     }
}
 

В C# нельзя изменить x,y и z переменные структуры Vector3 (они только для чтения), а в JS можно (потому что компилятор делает структуру заново за нас), поэтому в JS можно писать в 2 строки, а в С# ты теряешь X при назначении только Y ...
Аватара пользователя
Syberex
Адепт
 
Сообщения: 2292
Зарегистрирован: 14 янв 2011, 20:35
Откуда: Кострома
  • Сайт

Re: Простой скрипт для камеры

Сообщение xcube 31 окт 2012, 19:50

Syberex Спасибо! теперь все работает )
Изображение
Аватара пользователя
xcube
UNITрон
 
Сообщения: 304
Зарегистрирован: 23 сен 2011, 12:20
Откуда: Spb


Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13