Войти
РаботаФорумРезюме

Unity Developer

#0
(Правка: 20 сен. 2021, 11:22) 11:00, 12 мая 2021

Ищу работу Unity developer с частичной, проектной занятостью или на полный день.

Разработка и реализация игровых механик в соответствии с ТЗ.
Создание и редактирование шейдеров с помощью Shader Graph и Amplify Shader Editor.
Создание визуальных эффектов в VFX.
Обучение AI в ML-Agents.
Способен читать и рефакторить чужой код.

Опыт работы:
1) 2013 - 2020, математическое моделирование физических процессов и явлений
2) 2020 - настоящее время, фрилансер Unity Developer.

telegram Azag_Tot7
discord Azag_Tot7#0922


#1
13:59, 16 июля 2021

this.FixedUpdateAsObservable()
                .Select
                (
                _ =>
                {
                    return _rg.AddForce((Vector3.up, ForceMode.Impulse);
                }
                );

#2
7:48, 23 июля 2021

gameObject.AddComponent<CharacterController>().Move(Vector3.up);

#3
7:37, 30 июля 2021

Vector3.Cross(Vector3.forward,Vector3.right);

#4
(Правка: 3:41) 3:40, 18 авг. 2021

RaycastHit hit;
if (Physics.Raycast(transform.position, Vector3.up, out hit, Mathf.Infinity))
        {
            DiscussWorkWithEmployer();
        }
else
        {
            LookFurther();
        }

#5
21:42, 18 авг. 2021

креативность на высшем уровне!

#6
15:01, 23 авг. 2021

Добрый день! Рассмотрим вашу кандидатуру на полный рабочий день (удаленно)
Вакансии: https://gamedev.ru/job/forum/?id=263232
Если вакансия интересна, то просьба прислать резюме на почту   или telegram @nikitamk с пометкой, что вы с gamedev.ru и указать пожелания по зарплате.

#7
9:21, 20 сен. 2021

public class AIPlayerAgent : Agent
    {
        public Vector2ReactiveProperty ImpulseRP { get; private set; }
        public IObservable<Collider> OnTriggerEnterObservable { get; private set; }
        public void Awake()
        {
            ImpulseRP = new Vector2ReactiveProperty(new Vector2(0f, 0f));
            OnTriggerEnterObservable = this.OnTriggerEnterAsObservable();
        }
        public void Start()
        {
            OnTriggerEnterObservable
                    .Where(collision =>{return collision.gameObject.tag == "Food";})
                    .Subscribe(collision =>
                        {
                              collision.gameObject.GetComponent<Food>().ChangePosition();
                              AddReward(0.3f);
                        })
                    .AddTo(this);
            this.OnCollisionEnterAsObservable()
                .Where(collision =>{return collision.gameObject.tag == "Wall";})
                .Subscribe(collision =>
                    {
                        SetReward(-1f);
                        transform.localPosition = new Vector3(0, 1, 0);
                        EndEpisode();
                    }
                    )
                .AddTo(this);
            OnTriggerEnterObservable
                    .Where(collision =>{return collision.gameObject.tag == "Wall";})
                    .Subscribe(collision =>{AddReward(-2f);})
                    .AddTo(this);
            OnTriggerEnterObservable
                .Where
                (collision => { return collision.gameObject.tag == "AITailElement"; })
                .Subscribe(collision =>{AddReward(-0.3f);})
                .AddTo(this);
        }
        public override void OnEpisodeBegin()
        {
            transform.localPosition = new Vector3(0, 1, 0);
        }
        public override void CollectObservations(VectorSensor sensor)
        {
            sensor.AddObservation(transform.position);
        }
        public override void OnActionReceived(ActionBuffers actions)
        {
            int x = actions.DiscreteActions[0] - 1;
            int z = actions.DiscreteActions[1] - 1;
            ImpulseRP.Value = new Vector2(x, z);
            AddReward(-0.0005f);
            if (GetCumulativeReward() <= -1f) EndEpisode();
            if (GetCumulativeReward() >= 0.8f) EndEpisode();
        }
    }

РаботаФорумРезюме