Junior C# unity programmer

Портфолио, резюме, поиск работы

Junior C# unity programmer

Сообщение DeHHu 11 июл 2013, 00:05

О себе
ФИО: Медведский Андрей Викторович
Год рождения: 1992
Образование: Высшее
Место проживания: Украина, г.Луганск
e-mail: A.V.Medvedskiy@hotmail.com

Технологии
Программирование: С#, PHP, Delphi, JS, C/С++
СУБД: MySQL, MSSQL
Верстка: HTML,CSS, XML
3D пакеты: 3ds Max, Mudbox

Ищу удаленную работу в качестве C# разработчика. С Unity знаком более года, в качестве хобби и простого интереса (popcorn1)
Опыт работы минимальный.

Несколько небольших наработок:
Скрытый текст:
Простой боулинг:
http://avmedv.besaba.com/Bowling.html
Космический сеттинг, с пулом объектов
http://avmedv.besaba.com/Space.html


Примеры кода:
Скрытый текст:
Класс шара, для боулинга
Синтаксис:
Используется csharp
using UnityEngine;
using System.Collections;

public class Ball : MonoBehaviour {
       
        public int key = 0;
        public bool canControl = true;
        public GameObject posPointer;
        public GameObject rotPointer;
        //раздел private переменных
        private Vector3 _startPosition;
        private Quaternion _startRotation;
        private Transform _transform;
        private Rigidbody _rigidbody;
        private int _side = 0;
        private float _size = 0.50f;
        private Vector3 _position = Vector3.zero;
        private Vector3 _rotation = Vector3.zero;
       
        private bool _anchor = false;
        private bool _anchorForce = false;
        private float _force = 50;
        // Use this for initialization
        void Start () {
                //кешируем transform and rigidbody
                _transform = transform;
                _rigidbody = rigidbody;
                _rigidbody.isKinematic = true;
                _position = _transform.position;
                _rotation = _transform.eulerAngles;
                //запоминаем начальные положения
                _startPosition = _transform.position;
                _startRotation = _transform.rotation;
                Active(posPointer,true);
                Active(rotPointer,false);
               
                //rigidbody.AddForce(Vector3.back * 50,ForceMode.Impulse);
        }
       
        //возвращение шара в начальную позицию
        public void StartPosition()
        {
                _rigidbody.velocity = Vector3.zero;
                _transform.position = _startPosition;
                _transform.rotation = _startRotation;
                canControl = true;
                _rigidbody.isKinematic = true;
        }

        void AddForce(float force)
        {
                _rigidbody.isKinematic = false;
                _rigidbody.AddRelativeForce(Vector3.forward * force*10,ForceMode.Acceleration);
        }
       
        void Check()
        {
                if ( _position.x > _size)
                         _position.x = -_size+1;
                if &#40; _position.x < -_size&#41;
                         _position.x = _size-1;
        }
       
        //максимально возможные углы и сила
        private const int MAX_ANGLE = 220;
        private const int MIN_ANGLE = 140;
        private const int MAX_FORCE = 60;
        private const int MIN_FORCE = 20;
       
        private const float MAX_OFFSET = 0.8f;
       
        void Control&#40;&#41;
        {
                switch &#40;key&#41;
                {
                case 0:
                        Active&#40;posPointer,true&#41;;
                        //выбор направления передвижения шара
                        if &#40;Input.GetAxis&#40;"Mouse X"&#41; > 0.1f || Input.GetAxis&#40;"Horizontal"&#41; > 0.1f&#41;
                                _side = -1;
                        else
                                if &#40;Input.GetAxis&#40;"Mouse X"&#41; < -0.1f || Input.GetAxis&#40;"Horizontal"&#41; < -0.1f&#41;
                                        _side = 1;
                                else
                                        _side = 0;
                       
                        //на дорожке ли мы, если да то передвигаемся
                        if &#40; _position.x <= _size &&  _position.x >= -_size &#41;
                                _position.x +=_side * 0.005f;
                       
                        Check&#40;&#41;; // колибровка шара на выход за границы
       
                        //присваиваем новою позицию шару
                        _transform.position = _position;
                        Transform tr = Camera.mainCamera.transform;
                        tr.position = new Vector3&#40;_position.x,tr.position.y,tr.position.z&#41;;
                        break;
                case 1:
                        Active&#40;posPointer,false&#41;;
                        Active&#40;rotPointer,true&#41;;
                       
                        // увеличение/уменьшение поворота броска
                        if &#40;_anchor&#41;
                                //_rotation.y = Mathf.LerpAngle&#40;_rotation.y,MAX_ANGLE,Time.deltaTime&#41;;
                                _rotation.y += MAX_OFFSET;
                        else
                                //_rotation.y = Mathf.LerpAngle&#40;_rotation.y,MIN_ANGLE,Time.deltaTime&#41;;
                                _rotation.y -= MAX_OFFSET;
                       
                        if &#40;_rotation.y > MAX_ANGLE - 10 || _rotation.y < MIN_ANGLE + 10&#41;
                                _anchor = !_anchor;
                        //присваиваем новый поворот
                        _transform.eulerAngles = _rotation;
                       
                        break;
                       
                case 2:
                       
                        Active&#40;rotPointer,false&#41;;
                        // увеличение/уменьшение силы броска
                        if &#40;_anchorForce&#41;
                        {
                                //_force = Mathf.LerpAngle&#40;_force,MAX_FORCE,Time.deltaTime/2.0f&#41;;
                                _force += MAX_OFFSET;
                        }
                        else
                        {
                                //_force = Mathf.LerpAngle&#40;_force,MIN_FORCE,Time.deltaTime/2.0f&#41;;
                                _force -= MAX_OFFSET;
                        }
                       
                        if &#40;_force > MAX_FORCE || _force < MIN_FORCE &#41;
                                _anchorForce = !_anchorForce;
                               
                        break;
                default:
                        key = 0;
                        //кидаем шар
                        AddForce&#40;_force&#41;;
                        //запрещаем управление
                        canControl = false;
                        break;
                }
        }
       
        void Active&#40;GameObject gObject,bool status&#41;
        {

                if &#40;gObject.active != status&#41;
                {
                        gObject.active = status;
                        //включаем выключаем стрелки
                        foreach &#40; Transform child in gObject.transform&#41;
                        {
                                child.gameObject.active = status;
                        }
                }
        }
       
        void Update &#40;&#41; {
                if &#40;canControl&#41;
                {
                        Control&#40;&#41;;                     
                       
                        //изменяем состояние управления
                        if &#40;Input.GetKeyDown&#40;KeyCode.Space&#41;&#41;
                        {
                                key++;
                        }
                }
        }
       
        void OnGUI&#40;&#41;
        {
                //выводим на экран ползунок силы
                if &#40;key == 2&#41;
                        GUI.Box&#40;new Rect&#40;Screen.width/2 + 140,Screen.height - 20,20,-2*_force&#41;,"Force"&#41;;
        }
}

 


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


public abstract class BaseBullet : MonoBehaviour {
/* Private переменные */
        private Transform _transform;
        private Renderer _renderer;
        private Vector3 _offset = Vector3.zero;
        private int _layer = 0;
        private BaseDamage _damage;
/*Вспомогательные переменные*/
        private RaycastHit _hit;
        private int _layerMask;
       
/* Публичные переменные */
        public float speed = 100.0f;
        //public GameObject explosion;
        public GunType type = GunType.Base;
       
       
        public BaseBullet&#40;&#41;
        {
                _layerMask = ~&#40;1<<_layer&#41;;
        }
       
        public void Start&#40;&#41;
        {
                _transform = GetComponent<Transform>&#40;&#41;;
                _renderer =  GetComponentInChildren<Renderer>&#40;&#41;;
        }
       
        public BaseDamage Damage
        {
                set{_damage = value;}  
        }
       
        public Transform Transfom
        {
                get{return _transform;}
        }
       
        public void Translate&#40;&#41;
        {
                _offset.z  = speed*Time.deltaTime;
                Transfom.Translate&#40;_offset,Space.Self&#41;;
        }
       
        public void Move&#40;&#41;
        {
                Translate&#40;&#41;;
                if &#40;!_renderer.isVisible&#41;
                {
                        Destroy&#40;&#41;;
                }
               
                if &#40;Physics.Raycast&#40;Transfom.position, Transfom.TransformDirection&#40;Vector3.forward&#41;,out _hit,1.0f,_layerMask&#41;&#41;
                {
                        RaycastObject&#40;_hit&#41;;
                }
        }
       
        public virtual void RaycastObject&#40;RaycastHit hit&#41;
        {
                if &#40;hit.transform.parent != null&#41;
                {
                        //Destroy&#40; hit.transform.parent.gameObject&#41;;
                        //hit.transform.parent.gameObject.GetComponentInChildren<BaseUnit>&#40;&#41;.Dead&#40;&#41;;
                }
                else
                {
                        CollisionWithObject&#40;hit&#41;;
                }
        }
       
        public virtual void CollisionWithObject&#40;RaycastHit hit&#41;
        {
                hit.transform.gameObject.GetComponentInChildren<BaseUnit>&#40;&#41;.DoDamage&#40;_damage&#41;;
                Destroy&#40;&#41;;
        }

       
        public virtual void Destroy&#40;&#41;
        {
                BulletPools.Add&#40;gameObject,type&#41;;
                gameObject.SetActive&#40;false&#41;;
        }
}

 


По всем вопросам можно обращаться на почту или в ЛС.
DeHHu
UNец
 
Сообщения: 41
Зарегистрирован: 22 янв 2012, 11:32
Skype: dehhhu

Re: Junior C# unity programmer

Сообщение rileex 31 окт 2013, 17:09

требуется настройка In-app purchase в игровое приложение под Android.Если интересует - пишите в лс
_https://www.facebook.com/smartmovegames
_ttp://vk.com/smartmovegames
_https://www.smartmovestudio.ru
Аватара пользователя
rileex
UNец
 
Сообщения: 37
Зарегистрирован: 10 янв 2013, 21:17
Откуда: Earth
  • Сайт


Вернуться в Ищу Работу

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

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