Showing posts with label Unity Sinhala. Show all posts
Showing posts with label Unity Sinhala. Show all posts

Saturday, November 17, 2018

Unity Tutorial Sinhala - Unity ගැන සිංහලෙන් ඉගෙනගමු - Scripting - 8

කලින් post එකේදි අපි කතා කරා animation parameters එක්ක වැඩ කරන්නෙ කොහොමද කියල. මගේ කලින් post බලල නැත්නම් අනිවාර්යෙන් ඒව බලල එන්න මොකද අද අපි කරන්නෙ ඉතා වැදගත් පාඩමක් නිසා. මේකෙදි අපට කලින් කරපු කොටස් අනිවාර්යයෙන් ඕන වෙනව.



ඉතින් අද අපි කතා කරන්නෙ Unity Scripting කරන හැටි. හරියටම කිව්වොත් game objects සහ අපි හදන game එකට script හරහා call කරන්න පුලුවන්. මෙතනදි වෙන්නෙ මෙහෙම දෙයක් ඔයාලට මතක ඇති අපි game objects අපේ game එකට add කරා. ඊට පස්සෙ ඒවට animations එකතු කරා. මේ animations වලට animation controller හරහා විවිධ state වලදි හැසිරෙන්න ඕන විදිය animation parameter මගින් වෙනස් වෙන්න ඕන විදිහ ගැන කතා කරා. ඒ උනාට මේව ක්‍රියාත්මක වෙන්න ඕන වෙලාව, ක්‍රියාත්මක වෙන්නෙ මොන inputs දුන්නහමද, ඒව වෙනස් වෙන විදිහ සේරම හසුරවන්නෙ script එක හරහා.

මූලික අවබෝධයක් දෙන්නම් scripting ගැන ප්‍රධාන කොටසක් නිසා. Unity වල scripting වලට default IDE එකක් දෙනව setup එක download කරනකොටම. ඒ Monodevelope IDE එක. භාවිතා කරන language එක C#. මුල්ම කාලෙ Unity version වල Java Script language එක use කරා unity ලට ආවේණික විදියට වෙනස් කම් කරල. ඒත් භාවිතයේ අඩුවීමත් එක්ක මේ language එක game engine එකෙන් ඉවත් කරල තියෙනව.

C# script එකක් add කරගන්නෙ මෙහෙමයි. මුලින්ම මම project panel එකේ scripts කියල folder එකක් හදාගත්ත. ඒක ඇතුලට ගිහින් right click කරල ලැබෙන menu එකේ Create->C# Script තෝරන්න.



ඊට පස්සෙ ලැබෙන  script එක player කියල rename කරගන්න.



මම player කියල මෙතනදි හදුන්වන්නෙ අපේ cube game  object එක. ඒක නිසා මම cube එකට මේ script එක එකතු කරන්න ඕන. ඒ නිසා game window එකේදි cube එක select කරන්න. ඊට පස්සෙ player script එක drag කරල inspector window එක උඩට drop කරන්න.



දැන් අපේ cube එකට player script එක add වෙලා තියෙන්නෙ. දැන් script එක double click කරන්න. එතකොට ඔයාලගෙ monodevelop IDE එක open වේවි. මම මගේ IDE එක VSCode වලට වෙනස් කරගෙන තියෙන්නෙ.(තමන්ට කැමති IDE එකකට හදාගන්න පුලුවන් Edit->Preference->External Tools හරහා).


මෙතනදි ඔයාලට පේනව player class එක MonoBehavior කියන namespace එක ඇතුලෙ තමයි create වෙන්නෙ. (namespace එක කියන්නෙ MonoBehavior Project එකක් කියල හිතන්නකො, ඒ project එක ඇතුලෙ තියෙන class එකක් තමයි player කියල හිතන්න)

මේකෙ start සහ update කියල methods දෙකක් පේනව ඇති. start method එකේදි වෙන්නෙ game එක start වෙනකොට මොනවද වෙන්න ඕන කියල කියන එක. update method එකේදි එන්නෙ game එක play වෙන හැම frame එකකදිම update වෙන්න ඕන දේවල් මොනවද කියල කියන එක.

දැන් මම script එක check කරන්න start method එක ඇතුලෙ print statement ලියනව Debug.Log("Hello world"); කියල. ඊට පස්සෙ script එක save කරගන්න.



දැන් play button එක ඔබන්න. එතකොට console එකේ ඔයාලට පෙනේවි hello world කියල print වෙනව.

හරි. දැන් මම අපි හදන game එකට අදාලව code එක පහල පේන විදියට වෙනස් කරගන්නම්.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class player : MonoBehaviour {
    public float player_speed;
    private Animator anim;
    // Use this for initialization
    void Start () {
        anim = GetComponent<Animator>();
    }
    
    // Update is called once per frame
    void Update () {
        player_speed = Input.GetAxis("Vertical");
        anim.SetFloat("speed",player_speed);
    }


මුලින්ම කියන්නම් code එක ගැන. මුලින්ම private Animator type එකක් අරගෙන anim කියල variable එකකට
declare කරගත්ත. මෙතනදි අපි Inspector එකේ animator එක තමයි අපේ script එකට ගත්තෙ.
ඊට පස්සෙ player_speed කියල float variable එකකුත් declare කරගන්න ඕන.

start method එකේදි GetComponent function එක හරහා අපේ Animator එකට call කරල තියෙනව.
මොකද හැම frame එකේදිම අපි set කරගත්ත speed කියන animation parameter එකට call කරන්න ඕන
SetFloat fucnction එක හරහා.

 player_speed = Input.GetAxis("Vertical"); මේකෙදි කියන්නෙ GetAxis function එකෙන් යන්න ඕන
දිශාව ගන්න එක. Vertivcal කියන්නෙ සිරස් අක්ෂය හරහා unity standard ලබාදෙන keys(ඕනම game එකක)
forward(ඉදිරියට යන්න) w හරි up Arrow එක හරි.

දැන් unity වලට ගිහින් play button එක ඔබල බලන්න. දැන් W key එක press කරන්න එතකොට අපේ
animation එක වැඩ කරනව ඔයාලට පෙනේවි.

ඉතින් අද මම කතා කරේ unity scripting ගැන. මේ ගැන ගොඩක් දේවල් ඔයාලත් හොයල බලන්න.
scripting වලට අදාලව ගොඩක් predefined functions තියෙනව unity වල. ඒව කරල practice වෙන්න. ඔයාලගෙ comments, ප්‍රශ්න තියෙනවනම් පහල comment section එකේ දාන්න. ඔබට ජය!

Saturday, November 3, 2018

Unity Tutorial Sinhala - Unity ගැන සිංහලෙන් ඉගෙනගමු - Animation Parameters - 7

කලින් post එකේදි අපි කතා කරා කොහොමද අපේ game asset එකකට Animator Controller එකක් එකතු කරගන්නෙ කියල. ඒ post එක ඔයාල තාම බලල නැත්තම් මෙතනින් බලන්න පුලුවන්. අද අපි කතා කරන්නෙ Animator Controller window එකෙදි කොහොමද animation parameters එකතු කරගන්නෙ කියල.



Animation parameter එකක් කියන්නෙ මෙහෙම දෙයක්. හිතන්න අපේ cube එකට ඉස්සරහට යන්න ඕන speed කියන variable (විචල්‍ය) 0 ට වඩා වැඩි වෙනකොට. ආයෙත් නවතින්න ඕන speed එක 0 දි. එහෙමත් නැත්නම් මොකක් හරි animation එකක් play වෙන්න ඕන boolean එකක් true වෙන වෙලාවට. අනිත් වෙලවට(false) animation එක වැඩ කරන්නෙ නැතුව ඉන්න ඕන. මේවගේ වෙලාවට තමයි animation parameters භාවිතා වෙන්නෙ.


මම උඩ රූපෙන් පෙන්නල තියෙන්නෙ උදාහරණයක් මෙතන parameters 4 ක් භාවිතා කරල තියෙනව forward, strafe, fire, die කියල. forward, strafe කියන දෙකම float values. fire කියන්නෙ bool එකක්. bool එකක් දානකොට තමයි checkbox එකක් වටෙන්නෙ. true නම් checkbox එකේ හරියක් වැටෙනව. die කියන්නෙ trigger එකක්. ඒක radio button එකක්.

parameters වර්ග 4 ක් තියෙනව.

  • Int - an integer (whole number)
  • Float - a number with a fractional part
  • Bool - true or false value (represented by a checkbox)
  • Trigger - a boolean parameter that is reset by the controller when consumed by a transition (trigger එක කියන්නෙ අපට අවශ්‍ය controller ද ඉන්නෙ කියල දැනගන්න boolean parameter එකක්)

parameters ගැන ඔයාලට දැන් අවබෝධයක් ඇති. දැන් අපේ game එකට යමු. මම් හිතන් ඉන්නව cube එකේ forward animation එකට speed කියල parameter එකක් දාන්න.

මුලින්ම අපේ animator controller එකේ base layer එක පහත පරිදි හදාගන්න ඕන.


මෙතනදි මම idle සහ forward කියල state 2 ක් හදාගෙන තියෙනව. ඊට පස්සෙ idle එකේ ඉඳල forward එකටත් forward එකේ ඉඳල idle එකටත් transition 2 ක් එකතු කරගෙන තියෙනව. ඊට පස්සෙ idle එක මගේ default state එක කියල තෝරගෙන තියෙනව. මොකද game එක පටන් ගන්නකොට cube එක, එක තැනක තියෙන්න ඕන.(state, transition දාන විදිහ මම කලින් post එකේ කියල තියෙනව) .


දැන් මුලින්ම animator controller window එකේ වම් පැත්තෙ ඉහල කෙලවරේ තියෙන + mark එක click කරන්න.


ලැබෙන menu එකේ float තෝරන්න.


දැන් parameter එකක් දාන්න අපට box එකක් එනව ඒකෙ parameter එක speed කියල වෙනස් කරගන්න.


දැන් අපට idel -> forward යන transition එක select කරගන්න ඕන. ඊට පස්සෙ conditions යටතේ + mark එක ක්ලික් කරගන්න.


රූපෙ විදිහට speed එක 0.1 ට වඩා විශාල නම් කියල අපේ condition වෙනස් කරගන්න. එතකොටනෙ cube එක ඉස්සරහට යන්න ඕන. ඒකට speed, greater, 0.1 කියල conditions හදාගන්න.


ඒ විදිහටම forward ඉඳල idle වෙනකොට අපේ cube එක නවතින්න ඕනනෙ. ඒකට ඒ transition එක select කරල speed, less , 0.1 තෝරන්න.

හරි අපි අද අපේ forward animation එකට conditions දාගත්ත. ඒ විදිහට animation භාවිතා කරන හැම වෙලවෙම අපට conditions දාගන්න වෙනව. ඊළඟ post එකේදි අපි බලමු C# වලින් scripting කරන විදිහ.
ඔයාලගෙ comments, ප්‍රශ්න තියෙනවනම් පහල comment section එකේ දාන්න. ඔබට ජය!

Sunday, October 7, 2018

Unity Tutorial Sinhala - Unity ගැන සිංහලෙන් ඉගෙනගමු - Main Windows -3

Unity, 3 වෙනි tutorial එකත් එක්ක තමයි අද ඔයාල එකතුවෙලා ඉන්නෙ. ඉතින් මගේ පලවෙනි සහ දෙවනි tutorial වලදි මම කතා කරා කොහොමද unity install කරගන්නෙ සහ unity asset flow එකත් එක්ක වැඩ කරන්නෙ කියල, නොබලපු අයට පුලුවන් පහල ලින්ක් එකෙන් ඒ post එකත් බලන්න.

Introduction :- http://binojishara21.blogspot.com/2018/09/unity-tutorial-sinhala-unity.html
Asset Workflow :- http://binojishara21.blogspot.com/2018/10/unity-tutorial-sinhala-unity-asset.html

පොරොන්දු වුනා වගේ මේ tutorial එකෙන් කරන්න බලාපොරොත්තු වෙන්නෙ unity වල තියෙන main windows මොනවද, ඒවත් එක්ක වැඩ කරන්නෙ කොහොමද කියල ඔයාලත් එක්ක කතා කරන එක.



Unity වල ප්‍රධාන windows 6 ක් තියෙනව.

  1. Project Window 
  2. Scene Window
  3. Hierarchy Window
  4. Inspector Window
  5. Toolbar
  6. Game Window
1. Project Window


නම දැක්ක ගමන්ම හිතන්න පුලුවන් project window එක කියන්නෙ මොකද්ද කියල. ඔව් ඔයාලගෙ unity project එකට අවශ්‍යය සියලුම assets(වස්තු)  තියගෙන ඉන්නෙ මේ window එකේ. අපට අවශ්‍ය වෙලවට මේ window එකෙන් assets අරගෙන අපේ game එකට add කරන්න එහෙමත් නැත්නම් වෙනත් asset එක්ක සම්බන්ධ කරනකන් මේ window එකේ තියා ගැනීමේ හැකියාව තියෙනව.


ඔයාලට පේනව ඇති window එකේ වම පැත්තෙ තියෙන්නෙ අපේ project එකේ listed view එකක් ඉතින් අපට පුලුවන් පහසුවෙන්ම ඒ folders වලට ගිහින් අපට අවශ්‍යය folder එකේ තියෙන assets මොනවද කියල window එකේ බලගන්න.  

ඒ වගේම ඔය වම පත්තෙ ඉහල කෙලවරේ තියෙන favorite section එකට අපට පුලුවන් අපිට නිතර භාවිතා වන asset එකක්  drag කරල දාල ඒ asset එක නිතර නිතර භවිතා කරන්න යොදා ගන්නත්.


ඒ වගේම favorites  යටතේ search කරන්න කැමති ඕන දෙයක්(Material,Model,Prefabs,Scripts) තෝරගෙන Search ඉස්සරහින් තියෙන ඔය රතුපටින් වට කරල තියෙන drop down එකෙන්  Asset store තෝරල අපට අවශ්‍ය free සහ paid assets වෙනම filter කරල ගැනීමේ හැකියාවත් තියෙනව. ඉතින් ඒක asset store එකෙන් asset ගන්න ලොකු පහසුවක්. 

2. Scene Window



Scene window එක කියන්නෙ අපි game එක develop කරන්න use කරන window එක කිව්වොත් නිවැරදියි. අපට අවශ්‍යය සියලුම assets, game එකේ තියෙන්න ඕන විදියටම drag කරල place කරන්න මේ window එක උදව් වෙනව. ඔයාලට පෙනව ඇති දකුනු පත්තෙ උඩ කෙළවර,


මේ සලකුණ. මේකෙන් පෙන්නන්නෙ අපට Game එක පෙන්නන view එක. x,y,z කියන ආනත තල තුනට අදාලව අපේ game එක පෙන්වන ආකාරය කිව්වොත් නිවැරදියි. ඔයාලට පුලුවන් ඔයාලට කෙමති දිශානතියකින් බලන්න අවශ්‍යය තලය මත click කරල.

තව අපට අවශ්‍ය විදියට scene window එක එහා මෙහා ගෙනියන්න, ලක්ෂ්‍යයක්  වටා කරකවන්න වගේම විශාලනය කරන්න පහත keys ඕන වෙනව.

- Alt key එක ඔබාගෙන middle mouse button එක ක්ලික් කරගෙන scene එක එහා මෙහා ගෙනියන්න.

-  Alt key එක ඔබාගෙන left mouse button එක ක්ලික් කරගෙන scene එක ලක්ෂ්‍යයක් වටා කරකවන්න.

- mouse wheel එක කරකවන්න scene එක zoom කරන්න.


Scene view control bar


මේ bar එක වම් පැත්තෙ උඩ කෙළවරේ ඔයාලට බලගන්න පුලුවන්. shaded කියන drop down එකෙන් අපට scene එක shading mode එකේ එහෙමත් නැත්නම් වස්තු පෙනෙන ආකරයටම හෝ wireframe සැකිලි ආකාරයට බලන්න හදාගන්න පුලුවන්. 2D button එකෙන් 2D,3D පෙනෙන ආකාරයට වෙනස් කරගන්න පුලුවන්. light icon එකෙන් scene එකේ lights, on off කිරීමේ හැකියාව තියෙනව. Audio button එකෙන් ශබ්දය ඇති නැති කරන්න පුලුවන් වගේම ඊට එහා effect button එකෙන් skybox, fogs flares, animated material ඇති නැති කිරීමේ හැකියාව තියෙනව.

3. Hierarchy Window 


ඔයාල game එකක් හදනකොට game project එකට අදාලව default scene එකක් ලබෙනව. ඉතින් මේ scene එකට දාන assets පෙන්නනෙ  hierarchy window එක ඇතුලෙ. අපි scene window එකට asset එකක් දානකොට hierarchy window එකේ ඒ asset එක පෙන්නනව.


තව දෙයක්, මේ window එකේදි එක asset එකක් යටතේ තව asset එකක් අනිත් assets දාන්න පුලුවන්. මේකට කියන්නෙ parenting කියල. බලන්න උඩ රූපයේ parent යටතේ child, child 2 කියන asset 2ක තියෙනව. child 2 යටතේ  child 3 කියන asset එක තියෙනව. මේ විදියට child parent සම්බන්ධතා තියන්න මේ window එක උවමනා වෙනවා.


ඔයාලට පහසුවෙන්ම child විය යුතු asset එක drag කරල parent මත තියන්න පුලුවන්. එතකොට කලින් asset එක parent asset එකේ child කෙනෙක් වෙනව.

4. Inspector Window


Inspector window එකෙන් තමයි අපේ game objects වලට අදාල විස්තරාත්මක තොරතුරු සපයන්නෙ ඒවගෙම අපට අවශ්‍ය ආකාරයට game objects(assets,scripts,material prefabs) වල settings වෙනස් කරන්න වගේම game object වලට components, add කරන්නත් මේ window එක උවමනා වෙනව. 


ඉහත රූපයේ ඔයාලට පේන්නෙ player කියල game object එකකට colliders, Rigidbody, Scripts වගේ components add කරල තියෙන ආකාරය. ඉස්සරහ පාඩම් වලදි මේ window එක භාවිතා වෙන ආකාරය ප්‍රායෝගිකවම ඔයාලට බලාගන්න පුලුවන්.

5.Toolbar

Toolbar එක තියෙන්නෙ unity window එකේ උඩම. මේකෙ තියෙන tools වලින් කරන දේවල් පහල තියෙනව. 

 - scene view එකේ game object වල සිදුවෙන වෙනස්කම් මේකෙ පෙන්නනව.

- scene view එකේ objects වල කේන්ද්‍රය ලකුණු කරන්න.  ඒව කරකැවෙන හැටි පාලනය කරන්නෙ මේ tool එකෙන්.

- හදපු game එකක් play කරන්නෙ pause කරන්නෙ, step කරන්නෙ මේ button වලින්.


- unity service window එක open කරන්න පුලුවන්.


- ඔයාලගෙ unity accounts වලට අතුලු වෙන්න පුලුවන් මේකෙන්.
- scene window එකේ පෙන්වන්න ඕන මොනවද කියල මේ tool එකෙන් තෝරන්න පුලුවන්.
- unity window එක පෙනෙන ආකාරය මේකෙදි තෝරන්න පුලුවන්.


6.Game Window 

game එක cameras වලින් පෙනෙන ආකාරය තමයි game window එකෙන් බලාගන්න පුලුවන්. ඒකට ඔයාල game එක හදල play mode වල play button එක click කරන්න. එතකොට අපේ අවසාන game view එක බලාගන්න පුලුවන්.

- play mode



මේ window එකේ free Aspect කියන drop down එකෙන් ඔයාලට පුලුවන් game එක පෙනෙන ආකාරය වෙනස් කරගන්න. scale එකෙන් කැමරාව පෙනෙන ආකාරය විශාලනය කරන්නත් පුලුවන් දෙගුණයක් දක්වා.

ඉතින් අද පාඩමින් අපි windows ගැන ගොඩක් දේවල් කතා කරා. මේව කරල බලන්න තව තව දේවල් සොයාගන්න. ඉතින් දැන් අපි unity වට පිටාව දන්න නිසා ඊලඟ පාඩමේදි game එක හදන වැඩේට බහිමු. ඔයාලට තියෙන ප්‍රශ්න, comments මට එවන්න පහල comment section එකෙන්. ඔබට ජය!

Saturday, September 29, 2018

Unity Tutorial Sinhala - Unity ගැන සිංහලෙන් ඉගෙනගමු - Introduction of Unity game engine - 1

ඉතින් ඔයලත් එක්ක unity game engine එක ගැන කතා කරන පලවෙනි blog එක තමයි මේක. සම්පූර්ණ වැඩසටහන් මාලාවක් විදියට මේක ඉස්සරහට කරගෙන යන්න මං සැළසුම් කරල තියෙන්නෙ. ඒක නිසා මාත්  එක්ක දිගටම එකතුවෙලා ඉන්න අලුත්ම blog updates එක්ක එකතුවෙන්න.



Unity කියන්නෙ සරලවම කිව්වොත් game engine එකක්. ඒ කියන්නෙ ඔයලට අවශ්‍ය 2d, 3d games හදන්න පුලුවන් platform එකක්. games විතරක් නෙමෙයි application වල අතුරුමුහුනත්(UI) , Augmented reality Application, 3d modeling & designing, animations, films වගේ ගොඩාක් වැඩ කරගන්න පුලුවන් software එකක් තමයි මේක.

Unity එක්කම තරඟකරීව යන game engine විදියට unreal, cryengine, source, godot වගේ game engine අපට හඳුන්වන්න පුලුවන්. Unity ගොඩාක් දෙනා අතර ප්‍රචලිත වෙන්න හේතුව භාවිතා කිරීමේ පහසුව සහ free edition එකක් විදියට ඕන කෙනෙක්ට භාවිතා කිරීමේ හැකියාව. ලේසියෙන් 3d, 2d games හදන්න unity විසින්ම ලබා දෙන libraries, unity systems වලින් scripting කරනකොට අපට import කරගන්නත් පුලුවන්.

Scripting වලට unity භාවිතා කරන්නෙ C# කියන progamming language එක. කලින් නම් unity ල විසින්ම ලබා දුන්න js language එකත් තිබුන. අලුත් සංස්කරණයෙදි ඒක ඉවත් කරල තියෙනව. programming කරන්න MonoDevelop IDE එකත් ඔයලට unity game engine එකත් එක්ක free ලැබෙනව. C# තියෙනව කියල බයවෙන්න එපා C# කියන්නෙත් java වගේම object oriented language එකක්. මේකත් එක්කම C# වැඩසටහන් මාලවක් blog එකෙන් ගේන්න මං ඔයලට පොරොන්දු වෙනවා.

මුලින්ම unity Game engine එක install කරගන්න. ඒක නම් ඔයාලට කරගන්න වෙන්නෙ online  තමයි. Unity ල personal edition එකක් release කරල තියෙන්නෙ ඕනම developer කෙනෙක්ට free download කරල use කරන්න. පහල link එක use කරල ඔයාලට පුලුවන් unity, download කරගන්න.

Download link :- https://store.unity.com/download?ref=personal

ඊට පස්සෙ ඔයාලට ලැබෙන්නෙ unity 2018.2 අලුත්ම unity version එකේ web page එක. ඒකෙ පහල තියෙනව වගේ terms accept කරල installer එක download කරගන්න.


ඔයාල use කරන OS එක Mac නම් page එකේ පහල තියෙනව Mac installer එක ගන්න link එකක්, එකෙන් ගන්න පුලුවන්.

ඒ විදියට installer එක download කරල install කරගන්න. ඊලඟ පාඩමේදි අපි බලමු unity ඇතුලට ගිහින් වැඩ කරන හැටි. ඔයාලගෙ comments, ප්‍රශ්න තියෙනවනම් පහල comment section එකේ දාන්න. ඔබට ජය!

Battle Zone - Legacy Reborn(TRON Game) Game Review & Download setup #free

ඔන්න ඉතින් අදත් ඔයාලත් එක්ක මං එකතුවෙන්නෙ ලංකාවෙ හදපු සුපිරිම ටිකක් වෙනස්ම විදියෙ Unity Game එකක් එක්ක. මේකෙ නම Battle Zone - Legacy ...