«یا اللهُ یا رَبِّ یا حَیُّ یا قَیّوم یا ذَالجَلالِ وَ الاکرام اَسئَلُکَ بِاسمِکَ اَلعَظیم اَلاَعظَم اَن تَرزُقَنی رِزقاً حَلالاً طَیِّباً بِرَحمَتِکَ الواسِعَه یا اَرحَمَ الرّاحِمِین.»
بایگانی شهریور ۱۳۹۴ :: گیم اور _ بازیسازی با unity + مطالب متفرقه

گیم اور _ بازیسازی با unity + مطالب متفرقه

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

آموزش های علمی با اجازه ی خدا تقدیم به هرکس خدا بخواد

به نام خدا
--
گروه قدیم ما promakers.ir یا پرومیکرز بود که بالای هزار اموزش توش ساخته بودم به اسم sajjad3011 ولی حیف ادمین سایتش عوض کرد
حالا سوالی بود کاری بود این شمارمه

قدیمیا دلم براتون تنگ شده... فقط معرفی کنید توی پیامک یا تماس یاد بیارید.
اگه جواب ندادم شاید موقعیت نداشته باشم.
بگید توی پیام از بچه های پرومیکرز هستید.

---
سوالی بود بذارید
نظر خصوصی نذارید
پاسخش سخته
دوست داشتید شماره بذارید تو واتساپ یا ایتا یا .... گروه بزنیم.
09358077198

بایگانی
پیوندها

۴۲ مطلب در شهریور ۱۳۹۴ ثبت شده است

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
 
 
public class SpriteTest : MonoBehaviour {
 
 
    public Image mySprite;
 
 
    void OnTriggerEnter()
    {
        Invoke("ActiveSprite",1);
    }
 
 
    void ActiveSprite()
    {
        mySprite.enabled = true;
    }
}
۱ نظر موافقین ۰ مخالفین ۰ ۳۱ شهریور ۹۴ ، ۱۹:۰۰
مدیرکل

این گزینه نقش enabed رو بازی می کنه. اگه true باشه آیتم عمل می کنه و اگه false باشه آیتم عمل نمی کنه.

معمولا در قسمت ui->canvas group یا اشیای زیرشاخه ی ui (واسط کاربری) در یونیتی 5 می تونید دکمه و کادر متن و عکس و ... رو به عنوان یوزر اینترفیس بسازید. و هر کدوم رو خواستید عمل نکنه گزینه ی interactable رو false کنید یا تیکشو بردارید.(توی inspector)

http://s6.picofile.com/file/8213435050/interactable.jpg

۰ نظر موافقین ۰ مخالفین ۰ ۳۱ شهریور ۹۴ ، ۱۳:۳۹
مدیرکل
کپی:gameover.blog.ir
این کلمه برای تعریف متغیرهایی بکار می ره که نوعشون رو نمی دونیم یا بر حسب مقدار می خوایم نوع اون رو مشخص کنیم.
مثال:
// i is compiled as an int 
var i = 5;

// s is compiled as a string 
var s = "Hello";

// a is compiled as int[] 
var a = new[] { 0, 1, 2 };

// expr is compiled as IEnumerable<Customer> 
// or perhaps IQueryable<Customer> 
var expr =
    from c in customers
    where c.City == "London" 
    select c;

// anon is compiled as an anonymous type 
var anon = new { Name = "Terry", Age = 34 };

// list is compiled as List<int>                              
var list = new List<int>();
منبع :
https://msdn.microsoft.com/en-us/library/bb384061.aspx


۱ نظر موافقین ۰ مخالفین ۰ ۳۱ شهریور ۹۴ ، ۰۲:۰۰
مدیرکل

منبع: gameover.blog.ir
۱ نظر موافقین ۰ مخالفین ۰ ۳۰ شهریور ۹۴ ، ۲۰:۰۲
مدیرکل
منبع: gameover.blog.ir


اجرای یک فیلم در ابتدای بازی و از بین رفتن بعد از چند (در اینجا 10) ثانیه:
اسکریپت زیر رو میندازیم روی یک plane.
سپس یک فیلم کوتاه mp4 رو به پروژه اضافه می کنیم (به صورت movie texture توسط یونیتی تبدیلات انجام میشه خودکار)
یادتون نره quick Time هم باید نصب باشه) .
سپس فیلم رو می کشیم روی پارامتر a که از نوع MovieTexture تعریف کرده بودیم.
حالا اجرا می کنیم

کد PHP:
//movieTexture.js
//author:sajjad3011
var MovieTexture;
var 
i:float=0;
 var 
myTimer float 10.0;
function 
Start () {
 
renderer.material.mainTexture a;
a.Play();
}
 
function 
Update () {

if(
myTimer && a.isPlaying){ 
myTimer -= Time.deltaTime
if(
myTimer <= 0){Destroy(transform.gameObject); }
}
}
//update 
روی صحنه ی دلخواه میریم تا نمای خوبی داشته باشیم سپس دوربین رو انتخاب می کنیم و ctrl+shit+F می زنیم تا روی صحنه ی جاری set بشه.
فیلم اجرا میشه و بعد از 10 واحد زمانی نابود میشه.
بعدش می تونید هر عملی دوست داشتید انجام بدید.

کد معادل سیشارپ:
معادل سیشارپ:
public MovieTexture a;
float myTimer =10f;
void Start(){
renderer.material.mainTexture = a;
a.Play();
}
void Update () {
if(myTimer > 0 && a.isPlaying){ 
myTimer -= Time.deltaTime; 
if(myTimer <= 0){Destroy(transform.gameObject); 
}
}

۱ نظر موافقین ۰ مخالفین ۰ ۳۰ شهریور ۹۴ ، ۱۹:۵۰
مدیرکل
منبع: gameover.blog.ir
با تشکر از sajjad3011

نابود شدن گیم ابجکت با کلیک روی آن:

کد :
void Update (){
        if (
Input.GetMouseButtonDown (0))
            
Destroy (transform.gameObject);

حرکت گیم آبجکت به سمت بالا در زمان بین 2 الی 6 ثانیه:
کد :
using UnityEngine;
using System.Collections;

public class 
harkat MonoBehaviour {
    public 
float speed=0.01f;
    
// Use this for initialization
    
void Start () {
    
    }
    
    
// Update is called once per frame
    
void Update () {
        if(
2<=Time.time && Time.time <=6)
        
transform.position = new Vector2 (transform.position.xtransform.position.Time.time speed);
    }

از حرکت ایستادن گیم آبجکت بعد از برخورد با شی دیگر:
برای اینکه به هر دو ابجکت کامپوننت Collider می دهیم.

نامرعی کردن گیم ابجکت در یونیتی/مخفی کردن یا invisible کردن گیم ابجکت در یونیتی:
کد :
GetComponent<Renderer> ().enabled false

بردارهای حرکت در یونیتی:
کد:
Vector3.zero    خلاصش میشه Vector3(0, 0, 0).
Vector3.one    خلاصش میشه Vector3(1, 1, 1).

Vector3.down    خلاصش میشه Vector3(0, -1, 0).
Vector3.up    خلاصش میشه Vector3(0, 1, 0).

Vector3.forward    خلاصش میشه Vector3(0, 0, 1).
Vector3.back    خلاصش میشه Vector3(0, 0, -1).

Vector3.left    خلاصش میشه Vector3(-1, 0, 0).
Vector3.right    خلاصش میشه Vector3(1, 0, 0).
سیستم ضرب برداری هم در اینجا بحث شده قبلا :
http://promakers.ir/showthread.php?tid=12123

۰ نظر موافقین ۰ مخالفین ۰ ۳۰ شهریور ۹۴ ، ۱۷:۰۰
مدیرکل
منبع: gameover.blog.ir

اسکریپت حرکت به جایی که کلیک کردیم move2click در یونیتی:
کد js :

کد :
// Click To Move script
// Moves the object towards the mouse position on left mouse click
 
var smooth:int=1; // Determines how quickly object moves towards position
 
private var targetPosition:Vector3;
 
function Update () {
    if(Input.GetKeyDown(KeyCode.Mouse0))
    {
        var playerPlane = new Plane(Vector3.up, transform.position);
        var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
        var hitdist = 0.0;
 
        if (playerPlane.Raycast (ray, hitdist)) {
            var targetPoint = ray.GetPoint(hitdist);
            targetPosition = ray.GetPoint(hitdist);
            var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
            transform.rotation = targetRotation;
        }
    }
 
    transform.position = Vector3.Lerp (transform.position, targetPosition, Time.deltaTime * smooth);
}
اسکریپت بالا به زبون js هست.بندازید روی player.اجرا کنید. هرجا کلیک می کنید player میره اونجا.
پارامتر smooth روی 1 تظیم شده.اگه مقدارش بیشتر بشه سرعت حرکت بیشتر میشه.
نکته: اسکریپت فوق برای بازی های استراتژی از نمای کامل بالا کار نمی کنه)
اسکریپت حرکت سه بعدی پلیر در یونیتی/اسکریپت کاراکتر کنترلر:

این اسکریپت رو بدید به player .
نکته: پلیر نباید کامپونتت rigid body داشته باشه.ضمنا یک کامپوننت character controller هم بدید به player.
کد :

#pragma strict

function Start () {

}
private var moveDirection : Vector3 = Vector3.zero;
function Update () {
   
 var speed=5;
 var jumpSpeed=5;
 var gravity=5;
        var controller : CharacterController = GetComponent(CharacterController);
        if (controller.isGrounded) {
            // We are grounded, so recalculate
            // move direction directly from axes
            moveDirection = Vector3(Input.GetAxis("Horizontal"), 0,
                                    Input.GetAxis("Vertical"));
            moveDirection = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            
            if (Input.GetButton ("Jump")) {
                moveDirection.y = jumpSpeed;
            }
        }
        // Apply gravity
        moveDirection.y -= gravity * Time.deltaTime;
        
        // Move the controller
        controller.Move(moveDirection * Time.deltaTime);
    

}
اسکریپت حرکت دو بعدی player به چپ و راست در یونیتی:
کد :
//Player.Cs
//move 2d player Left/Right Unity
//Author:Sajjad3011
using UnityEngine;
using System.Collections;

public class player : MonoBehaviour {

    private Animator animator;
    private int walkSpeed=5;

    private float xScale,yScale;
    private bool run;

    void Start () {
        animator = this.GetComponent<Animator> ();
        xScale = transform.localScale.x;
        yScale = transform.localScale.y;

    }

    void Update(){ 
        if (Input.GetKey(KeyCode.RightArrow)) {
            run=true;
            GetComponent<Rigidbody2D>().velocity=new Vector2(walkSpeed,GetComponent<Rigidbody2D>().velocity.y);
            transform.localScale=new Vector2(xScale,yScale);
        }
        if (Input.GetKey (KeyCode.LeftArrow)) {
            run=true;
            GetComponent<Rigidbody2D>().velocity=new Vector2(-walkSpeed,GetComponent<Rigidbody2D>().velocity.y);
            transform.localScale=new Vector2(-xScale,yScale);
        }
        if (Input.anyKey==false){
            GetComponent<Rigidbody2D>().velocity=new Vector2(0,GetComponent<Rigidbody2D>().velocity.y);
            run=false;
        }

        if (animator != null) {
            animator.SetBool ("run", run);

        }

    }
}


به این بخش مراجعه بفرمایید: http://promakers.ir/showthread.php?tid=12196



۰ نظر موافقین ۰ مخالفین ۰ ۳۰ شهریور ۹۴ ، ۱۶:۵۵
مدیرکل

منبع : gameover.blog.ir

سعی کنید برای کدهاتون توضیح بذارید و dirty code رو به clean code ویرایش کنید.
کد تمیز کدی هست که فهم و درک اون آسونتر و کد کثیف کدی هست که فهم و درکش سخت تر باشه.
مثال:
کد کثیف:

کد:
if (Input .GetAxis ("Horizontal")<0)//Left
کد اصلاح شده تمیز:
کد :
if (Input.GetKey(KeyCode.LeftArrow))//Left 
کد کثیف:
کد:
if (Input .GetAxis ("Horizontal")>0)//Right
کد اصلاح شده ی تمیز:
کد :
if(Input.GetKey (KeyCode.RightArrow))//Right 
کد کثیف:
کد:
if (Input .GetAxis ("Vertical")>0)//Up
کد اصلاح شده ی تمیز:
کد :
if (Input.GetKey (KeyCode.UpArrow))//Up
۰ نظر موافقین ۰ مخالفین ۰ ۳۰ شهریور ۹۴ ، ۱۶:۵۵
مدیرکل
draw_text(100,100, chr(97));
draw_text(100,150, ord('a'));
کپی از : gameover.blog.ir
ord('A');//out: 65

chr('65')';//out: 'A'
۰ نظر موافقین ۰ مخالفین ۰ ۲۹ شهریور ۹۴ ، ۱۸:۵۰
مدیرکل
کپی از : gameover.blog.ir
آموزش Rigging در 3dsmax
خوب مثل اینکه تا خودم شروع نکنم کسی شروع نمی کنه.چند روزی هست دارم مطالعه می کنم و شبا فیلم آموزشی دانلود می کنم که زیاد به دردم نخورد و فکر کنم خودم باید به شیوه ی خودم یاد بدم تا بتونم توی کارهای تیمی بچه ها رو بیارم بالا . یکی برای بازی رستم و دیگه برای قوی تر شدن و انجام پروژه های بعدی انشاءا... big grin
--
دو تا سیستم رو فعلا عنوان می کنم: CAT + Biped

CAT یا ابزار انیمیشن کاراکتر :

[تصویر: catParent.jpg]

برای دسترسی به این سیستم به بخشCreate و سپس Helper رفته و از لیست گزینه ی CAT objects و سپس Cat parent رو انتخاب می کنیم. و بعدشم اگه بخوایم انسان رو ریگ کنیم Base Human رو می زنیم بعدش توی صحنه کلیک می کنیم و Drag می کنیم(ماوس رو در حالی که کلیک رو نگه داشتیم حرکت می دیم و سپس رها می کنیم) تا یک استخوانبندی انسانی به صورت مربعی مانند ساخته بشه.
گزینه های دیگه ای هم هست که برای ریگ موجودات مختلف بکار می ره.
در اینجا من سیستم CAT رو نمی خوام استفاده کنم ولی فقط اصطلاحاتشو می گم تا یکم براتون راحت بشه :

vertebrae=استخوان مهره
Quadrupeds =چهارپایان
biped=دو پا
marine=دریایی
alien=بیگانه
angel=فرشته
ape=میمون
centipede=هزارپا
lizard=مارمولک
mech=شاید به معنی مکانیکی باشه
panther=پلنگ
spider=عنکبوت
pelvis=لگن خاص
بقیه هم چون نمیدونستم ترجمه نکردمbig grin


سیستم Biped:

سیستم دیگه ای به اسم Biped هست که کار باهاش خیلی ساده هست و پیوستگی و اتصال استخوان ها خیلی دقیق تر رعایت می شه. من هم چون به Biped برای ریگ کردن انسان بیشتر علاقه دارم میخوام بیشتر روش تمرکز کنم و اگه بعدا فرصتی بود و نیاز شد CAT و انیمیت کردن موجودات دیگه هم می گم.


ما قراره رستم رو انیمیت کنیم. رستم یه وجود دو پا هست. پس باید از روش ریگ دوپایان که به انگلیسی میشه Biped (بای پِ د) استفاده کنیم.


برای ایجاد سیستم دوپا ، به منوی Create و سپس System و سپس Biped برید.

سپس در داخل صحنه Drag کنید تا استخوان بندی دلخواه شا ایجاد بشه به صورت خیلی زیباتر برای انسان:
[تصویر: rig_Biped_3dsMax.jpg]


در شکل بالا من اومدم قسمت های مختلف استخوان پا و دست و کمر و غیره رو با کلیک انتخاب کردم و جابجا کردم و چرخش دادم. شما هم می تونید قسمت های مختلف رو انتخاب کنید و کلید W رو برای جابجایی و کلید R رو برای تغییر مقیاس بزنید . و کلید E رو برای چرخش استفاده کنید.

با Ctrl+A می تونید کل استخوان ها رو انتخاب کنید.

خوب اگه شما کمی باهاش کار کنید می بینید چقدر استاندارد و طبیعی هست.

یکی از فرق های سیستم Biped با CAT اینه که توی Biped ما نمی تونیم به صورت تکی استخوان ها رو Scale یا تغییر اندازه بدیم. و باید کل استخوان ها رو انتخاب کنیم و Resize کنیم. علتش اینه که Biped دقیقا استاندارد هست و استخوانها از هم جدا نمی شن و دقیقا مثل استخوانبدی انسان هست که توی بدن ما خداوند متعال ایجاد کردهhappy
-
برای ساخت انیمیشن هم یک دکمه ی کلید هست که تغییرات هر فریم رو در time Slider یا نوار لغزان زمانی میشه ثبت کرد و یک دکمه ی autokey که وقتی نوار انیمیشن رو جابجا می کنیم دیگه نیاز به زدن آیکن کلید نیست بلکه خودکار تغییراتی که می دیم رو ثبت می کنه و برای ذخیره هر تغییر جدید فقط کافیه نوار زمانی رو جابجا کنیم و ببریم جلوتر و تغییرات بعدی رو انجام بدیم و در نهایت انیمیشن رو Play می کنیمbig grin
-
تا اینجا شد سیستم Biped (دو پایان) و ایجاد انیمیشن که واسه یادگیریش باید هزارتا فیلم یوتیوبی و غیره و ... رو دانلود می کردیم و حجم می زدیم تا آخرشم بلانسبت گیج تر بشیم Smile اما من خیلی روون و ساده یاددادمwinking
-
کاری که باید بکنیم اینه که انیمیشن رو ایجاد کنیم و سپس مدلی رو بسازیم یا حالا دانلود کنیم و ببریم توی تری دی استادیو مکس و سوار کنیم روی استخوون تا مدل هم مثل استخون همون حرکات رو اجرا کنه.
-
برای اینکار باید استخون رو دقیقا توی مدل قرار بدیم که برای راحتی کار توصیه می شه فریم اول استخون به حالت T form یعنی دست باز باشه و همچنینن تمام انشتان دست و پا و استخوان ها داخل مدل جاسازی بشه تا حرکت طبیعی تری رو داشته باشیم.
-
لطفا تمرین کنید و نمونه کارهاتونو تو بخش نمونه کارها بذارید و بگید که با آموزش من یاد گرفتید big grin


----

منبع :
autodesk

مترجم:sajjad3011

3ds Max برای پویا سازی و Rigging کاراکتر دارای دو سیستم فرعی است :(CAT و character studio )
اگر چه برای هر یک از این دو سیستم فرعی تنظیمات ویژه ای وجود دارد ، می توان آنها را با دو اصلاحگر Physique modifier و Skin modofier سفارشی کرد و هر دوی آن ها با تعدادی از فرمت فایل های motion capture سازگارند.

اما بین سیستم CAT ( ابزار انیمیت کاراکتر)، و character studio تفاوت های مهمی وجود دارد.بهترین روش برای تشخیص اینکه کدام یک از این دو سیستم برای کار روی پروژه ی شما مناسب تر است آن است که ابتدا هر دوی آن ها را بیاموزید و سپس طبق تجربه،تصمیم بگیرید هرکدام را که مایلید انتخاب نمایید.

در زیر مقایسه ای بین آن دو داریم:

CAT :
این سیستم با توجه به پیشرفته بودنش در بعضی اوقات ساده ترین روش برای انیمیشن کاراکتر هست. با CAT می تونید به سادگی کاراکترهای چند پا و غیرانسانی خود را rig و animate کنید.حتی می توانید کاراکترهای انسانی خود را به طور واقع گرایانه ای rig کنید.از بین ریگ های ساخته شده با CAT ،موجودات فرز و چابکی مثل اژدها(dragon) با 4 پا و 2 بال،عنکبوت(spider)،و یک چندپا(centipede) با 8 پا وجود دارد.شما می توانید همه ی اینها را به آسانی بدون استفاده از graph-based CATMotion editor انیمیت کنید. CATMotion بهترین گزینه برای اصلاح حرکت چرخشی در زمان واقعی با استفاده از تنظیم پارامترها برای بخش هایی از بدن مثل لگن خاصره(pelvis) است;این پارامترها عبارتند از Twist(پیچ و تاب) و Roll(گردش) و Pitch (پیچ)و Lift (آسانسور) و Push (فشار) .

قدرت دیگر و نسبتا آسان به استفاده از ویژگی CAT ، سیستم لایه بندی(layering system) است.هر دوی آنها از طریق CATMotion(برای چرخه بخش بدن فردی) و در full-rig level با فریم های کلیدی وزن گذاری شده(keyframed weighting) در هر دو سطح قابل دسترسی هستند.دومین مورد،پشتیبانی از رمز گذاری سیستم رنگ بندی لایه هاست و با استفاده از آن می توان فهمید که کدام لایه به حرکت در هر لحظه ی داده شده کمک می کند. CAT همچنین از ادغام بین FK و IK برای کنترل سفارشی حمایت می کند.

در آخر، CAT ،ماهیچه و اشیای استاندارد ماهیچه ای را برای شبیه سازی ساختمان عضلانی ایجاد می کند.
در درس بعضی character studio را مختصر شرح میدهیم.winking

character studio:
این سیستم،شامل یک مجموعه ابزار وسیع برای character-animation می باشد که میتواند با کاراکترهای چندپا کار کند اما در درجه ی اول برای ریگ دوپایان(bipedal rigs) در نظر گرفته شده است.از این رو بر ابجکت اصلی آن اسم Biped نهاده شده است.همچنین بخشی از character studio عبارت است از Physique modifier (مدیفایر فیزیک) برای skinning ریگ های کاراکتر. Physique می تواند با ابجکت های ریگ غیر از Biped و خصوصیاتی مثل بخش های user-definable rigid (جامد تعریف شده ی کاربر) و deforming(تغییر شکل) استفاده شود سومین کامپوننت character studio عبارت است از Crowd که انیمیشن روالی از گروه های بزرگی از کاراکترها را با رفتارهایی مثل اجتناب(avoidance)،حرکت تصادفی،دنبال کردن یک سطح امکان پذیر می کند. Biped کامپوننت character studio ی قدرتمند و پیشرفته تری است.از ویژگی های آن می توان به ایجاد procedural footstep (قدم زدن رویه ای)، freeform animation(انیمیشن فرم آزاد)،یک ویاریشگر انیمیشن ویژه به نام Workbench و یک خصوصیت انیمیشن غیرخطی به نام Motion Mixer (در دسترس برای انیمیشن عمومی) اشاره کرد.همچنین،خصوصیت Motion Flow تولید اسکریپت تصادفی،انتقالات رویه ای(procedural transitions) و بیشتر ... را ارائه می دهد.


این PDF هم skinning یا سوار کردن مدل روی استخون biped رو یاد میده:
http://images.autodesk.com/adsk/files/3dsmax_2010_character_animation.pdf


۰ نظر موافقین ۰ مخالفین ۰ ۲۸ شهریور ۹۴ ، ۰۰:۵۸
مدیرکل
کپی از : gameover.blog.ir
با اسکریپت زیر دشمن همیشه به player نیگا می کنه


using UnityEngine;
using System.Collections;

public class 
ExampleClass MonoBehaviour {
    public 
Transform target;
    
    
void Update() {
        
// Rotate the camera every frame so it keeps looking at the target 
        
transform.LookAt(target);
    }
}


متغیر target از نوع public تعریف شد.
target یعنی هدفی که می خوایم دشمن بهش نگاه کنه.
بنابراین می تونیم اسکریپت رو بندازیم روی دشمن و سپس player رو بکشیم بندازیم روی پارامتر target که به صورت پابلیک ساختیم.
۰ نظر موافقین ۰ مخالفین ۰ ۲۷ شهریور ۹۴ ، ۲۳:۱۴
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ شهریور ۹۴ ، ۲۱:۲۸
مدیرکل
14 ثانیه صبر و رد تبلیغ رو بزنید :

http://opizo.com/JQrH7Q


۰ نظر موافقین ۰ مخالفین ۰ ۲۵ شهریور ۹۴ ، ۲۱:۰۰
مدیرکل
روی لینک زیر کلیک کنید. بعد از 14 ثانیه رد تبلیغ رو بزنید:


http://opizo.com/UEkDFS


PDF رو بخونید قدم به قدم مراحل رو طی کنید. موفق باشید

۰ نظر موافقین ۰ مخالفین ۰ ۲۵ شهریور ۹۴ ، ۱۶:۱۳
مدیرکل
چرخش حول محور z :
transform.Rotate(0, 0, 100*Time.deltaTime);  //fast anti-clockwise rotation
 transform.Rotate(0, 0, 10*Time.deltaTime);   // slower  anti-clockwise rotation
 transform.Rotate(0, 0, 100* -Time.deltaTime);  // fast clockwise rotation
 transform.Rotate(0, 0, 10* -Time.deltaTime);   // slower clockwise rotation

چرخش به سمت ماوس:
void Update () {
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
transform.rotation = Quaternion.LookRotation(Vector3.forward, mousePos - transform.position);
}


۰ نظر موافقین ۰ مخالفین ۰ ۲۵ شهریور ۹۴ ، ۰۳:۴۰
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۵ شهریور ۹۴ ، ۰۲:۴۸
مدیرکل

پاسخ:
گاهی علت این است که به گیم ابجکت های خود collider های 2D داده ایم اما در اسکریپت خود از توابع 3D در اسکریپ های خود استفاده کرده ایم.

برای حل مشکل از مثال زیر الگو بگیرید :

کد سیشارپ:
        void OnTriggerEnter2D(Collider2D other) {
        
Debug.Log("OnTriggerEnter 2D");
        } 

        
void OnCollisionEnter2D(Collision2D coll) {
        
Debug.Log("OnCollisionEnter 2D"); 
نکته ی دوم اینه که هر دو گیم ابجکت باید collider 2d داشته باشد.
نکته سوم : بلعکس موارد فوق هم ممکنه رخ بده که خودتون می تونید جابجا کنید توابع 2D رو با توابع 3D.
۱ نظر موافقین ۰ مخالفین ۰ ۲۴ شهریور ۹۴ ، ۰۲:۰۲
مدیرکل

gameover.blog.ir

تکنیک یک : یونیکد

🔶🔶🔶🔶تایپ فارسی در یونیتی/فارسی نویسی در یونیتی:(آموزش:سجاد)

خوب اینم به خاطر سوال یکی از دوستان اشاره می کنم خودتون برید پی ش:

1)این سایت برای پیدا کردن کد کاراکترهای فارسی و انگلیسی و غیره به کارتون میاد :
https://unicode-table.com/en/#arabic

2) این کد برای تبدیل کد هگزا دسیمال به کاراکتر مورد نظر هست(کدش به زبان سیشارپ هست و در یونیتی ازش استفاده می کنیم)

char upArrow = '\u25B2';
Debug.Log(upArrow.ToString());

سایت رو می بینید؟ سمت چپش هر کاراکتر کد هگز داره

مثلا 0620 میشه "ی" فارسی

با بک اسلش یو،اومده می گه می خوام یونیکد تایپ کنی برام
بعدش کد اسکی می ده که در مبنای شانزده یا هگزا دسیمال هست
25B2

برد یم دسیمال دهدهی

decimal=مبنای ده

اگه alt نگه داری 9650 بزنی اون کاراکتر تایپ میشه

اگه هم توی یونیتی بخوای باید همین 9650 رو تبدیل به هگزا دسیمال کنی بعدش بدی به تابع ToString

تبدیل کنه به رشته

با \u


char upArrow = '\u25B2';
Debug.Log(upArrow.ToString());

بلی

باید برید تو سایت https://unicode-table.com/en/#arabic

کد تمام حروف رو در بیارید

از a تا z
از الف تا ی
و الی آخر


و کد هگزا دسیمالشونو توی ارایه کپی کنی

توی یونیتی

بعدش از هر کدوم خواستی استفاده کنی

کلمه دلخواه رو هم می تونی بنویسی

یا رشته دلخواه


اها تازه فهمیدم😃

=====


تکنیک دو:

با استفاده از یک فارسی ساز می تونید متن فارسی رو به یونیتی انتقال داده و از فونت مجازش توی یونیتی استفاده کنید.
به عنوان مثال فونت F_unwan.ttf (فونت هایی که اولشون F داره) برای فارسی ساز Leo moon کار می کنه که می تونید این فونت رو بکشید توی project و سپس یک ui canvas Text ایجاد کرده و فونت رو بکشید روی پارامتر Font در inspector.
سپس متن تایپ شده در Leomoon رو کپی کنید توی فیلد Text در inspector .
[تصویر: farsi_unity.gif]




کل کاراکترهای فارسی رو با Leomoon کپی بگیرید

ببر توی یک آرایه در یونتی ذخیر کنید


برای اینکه متن فارسی با حروف درست وارد بشه و حروف جمله به ترتیب از راست ترین حرف وارد بشه  و سپس با تایپ به سمت راست بره ابتدا خصوصیت رو در inspector روی چپ چین بذارید سپس جمله ی فارسی رو در متغیری از نوع رشته ای ذخیره کنید مثال myString.
سپس داریم:

IEnumerator PlayText()
{   
 for (int i=myString.Length-1;i>0i--) {
 
  TTX.text = myString[i] + TTX.text ;
    yield return new WaitForSeconds (0.125f);

 }
}

۱ نظر موافقین ۱ مخالفین ۰ ۲۴ شهریور ۹۴ ، ۰۲:۰۱
مدیرکل

//move and jump -
//attach this Script to ur Player
//hot keys :  
//            ArrowKeys=Move
//            Space=Jump
//Edided by : sajjad3011
    
var speed float 6.0;
    var 
jumpSpeed float 8.0;
    var 
gravity float 20.0;

    private var 
moveDirection Vector3 Vector3.zero;
    function 
Start()
    {
          
//this.gameObject.AddComponent(Rigidbody);//afzudane fizik
          
this.gameObject.AddComponent(CharacterController);//afzudane character controller
    
}
    function 
Update() {
        var 
controller CharacterController GetComponent(CharacterController);
        if (
controller.isGrounded) {
            
// We are grounded, so recalculate
            // move direction directly from axes
            
moveDirection Vector3(Input.GetAxis("Horizontal"), 0,Input.GetAxis("Vertical"));
            
moveDirection transform.TransformDirection(moveDirection);
            
moveDirection *= speed;
            
            if (
Input.GetButton ("Jump")) {
                
moveDirection.jumpSpeed;
            }
        }

        
// Apply gravity
        
moveDirection.-= gravity Time.deltaTime;
        
        
// Move the controller
        
controller.Move(moveDirection Time.deltaTime);
    }



واسه تشخیص برخورد هم ابتدا گیم ابجکت دلخواه رو انتخاب می کنی و add component و سپس box collider (محدوده ی مکعبی شکل) یا sphere collider( محدوده ی کره ای شکل برای شخص کردن ناحیه برخورد) میدی بهشون.
rigid body هم ندادم چون کمی مشکل ساز میشه
کد خیلی ساده هست . با کد یک کاراکتر کنترلر اضافه کردم. می تونستم دستی هم تو بخش طراحی با دکمه add component و تایپ character controller و enter اضافه کنم که خودم کدنویسی رو چون دوست داشتم با کد اضافه کردم
۲ نظر موافقین ۰ مخالفین ۰ ۲۳ شهریور ۹۴ ، ۱۸:۰۹
مدیرکل
۰ نظر موافقین ۰ مخالفین ۰ ۲۳ شهریور ۹۴ ، ۰۲:۱۵
مدیرکل
کل مطلب در RayCast خلاصه میشه.
ایده :

http://answers.unity3d.com/questions/438175/enemy-ai-detect-player-when-seen.html


۰ نظر موافقین ۰ مخالفین ۰ ۲۲ شهریور ۹۴ ، ۲۰:۵۲
مدیرکل

چند فرد مسلط به یونیتی برای ساخت بازی دو بعدی پیام بدن.

۰ نظر موافقین ۰ مخالفین ۰ ۲۱ شهریور ۹۴ ، ۲۰:۵۳
مدیرکل

اینو بذار تو update:
واسه چرخش:

کد:

transform.Rotate (new Vector3(0, Time.deltaTime, 0) * rotationSpeed );
به جای rotationSpeed هم سرعت دلخواه رو بده. پاراکتر اول و آخر Vector3 رو صفر دادم که x,z هستن.ما میخوام حول y بچرخه واسه همین پارامتر دوم رو هر لحظه با زمان افزایش میدیم و بردار بدست اومده رو در سرعت دلخواه ضرب می کنیم که زاویه چرخش هی زیاد میشه و همینطور می چرخه.
واسه حرکت هم : مثال:
کد:

//transform.position.Set(new_x,new_y,new_z);
transform.position.Set(transform.position.x,transform.position.y,new_z)
۴ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۴ ، ۱۹:۰۲
مدیرکل


Vector3.zero    خلاصش میشه Vector3(0, 0, 0).
Vector3.one    خلاصش میشه Vector3(1, 1, 1).

Vector3.down    خلاصش میشه Vector3(0, -1, 0).
Vector3.up    خلاصش میشه Vector3(0, 1, 0).

Vector3.forward    خلاصش میشه Vector3(0, 0, 1).
Vector3.back    خلاصش میشه Vector3(0, 0, -1).

Vector3.left    خلاصش میشه Vector3(-1, 0, 0).
Vector3.right    خلاصش میشه Vector3(1, 0, 0).


myTransform.position += myTransform.forward * moveSpeed * Time.deltaTime;
ادامه ی بحث:
http://promakers.ir/showthread.php?tid=12123&pid=125881#pid125881
۰ نظر موافقین ۰ مخالفین ۰ ۱۷ شهریور ۹۴ ، ۱۴:۵۵
مدیرکل
منبع: gameover.blog.ir



//test.Csharp
//Switch between animations of Animator component by changing the condition variable 'state'
//Author:Sajjad3011

    using UnityEngine;
    using System.Collections;
    public class test : MonoBehaviour {
        int state = 0;
        public Animator animator1;
        void Start () {
        }    
        // Update is called once per frame
        void Update () {
            if (Input.GetKey (KeyCode.LeftArrow)) {
                state = 1;
                Debug.Log("left");
            }
            if (Input.GetKey (KeyCode.RightArrow)){
                state = 2;
                Debug.Log("right");
        }
            if (animator1 == null) {
                Debug.LogError("Animator is null!");
            } else {
                 animator1.SetInteger("state", state);
            }
    
        }
    }

//S3011 
در این اسکریپت متغیر animator1 رو به صورت Public تعریف کردیم تا بتونیم بعد از اختصاص این اسکریپت، توی پنجره inspector به صورت پارامتر ورودی تنظیم کنیم.

متغیر state از کامپوننت Animator رو با فشردن کلید چپ و راست روی 1 و 2 تنظیم می کنیم و توی پنجره ی ماشین حالت Animator هم شرط یا condition ای به نام state از نوع Integer تعریف می کنیم و روی فلشی که به سمت انیمیشن سمت راست می ره می گیم اگه state مساوی(Equal) بود به 1 و روی فلشی که به سمت انیمیشن دویدن به سمت چپ می ره می گیم اگه state مساوی(Equal) بود به 2 .


۰ نظر موافقین ۰ مخالفین ۰ ۱۶ شهریور ۹۴ ، ۱۰:۵۳
مدیرکل

بعد از 14 ثانیه رد تبلیغ رو بزنید لینک مستقیم فایل mp4 میاد.حجم حدود 43 مگ هست.

http://media.farsnews.com/media/Uploaded/Files/Images/1394/06/14/13940614000151_PhotoI.jpg

http://opizo.com/K3GPhx

۰ نظر موافقین ۰ مخالفین ۰ ۱۶ شهریور ۹۴ ، ۱۰:۳۱
مدیرکل
ثانیه صبر کنید سپس رد تبلیغ و بزنید تا به صفحه مورد نظر هدایت بشید. یادتون نره بدون شیلتر فکن وارد بشید:

http://opizo.com/hMhAqi


۰ نظر موافقین ۰ مخالفین ۰ ۱۵ شهریور ۹۴ ، ۱۳:۱۴
مدیرکل
۱ نظر موافقین ۰ مخالفین ۰ ۱۴ شهریور ۹۴ ، ۱۷:۱۲
مدیرکل

http://s6.picofile.com/file/8210293142/The_animator_s_survival_kit.jpg

روی لینک کلیک کنید و 14 ثانیه منتظر بمانید و سپس رد تبلیغات رو بزنید.

حجم: تقریبا 30 مگابایت

فرمت : PDF

 

http://opizo.com/tuOzcG

اگه لینک خراب بود بگید اصلاح کنیم.

۰ نظر موافقین ۰ مخالفین ۰ ۱۴ شهریور ۹۴ ، ۰۲:۴۹
مدیرکل
بهترین بازی های سال 2015


http://opizo.com/7Xxi7g


بهترین بازی های اندرویدی سال 2014 از نگاه گوگل:

http://opizo.com/C5l1PI


۱ نظر موافقین ۰ مخالفین ۰ ۱۳ شهریور ۹۴ ، ۰۷:۲۶
مدیرکل

می خوای چیکار کنی با این کد؟ موبایل رو کج کنی به راست و چپ موتور یا ماشین فرمون بده به چپ و راست ؟
با این عکسا روحیه بدم بهت؟ Gyroscope

http://www.i-phone.ir/forums/uploadedpictures/8cc1d230c10801cfb2144d6bac42639f.jpg

http://www.techtilt.com/wp-content/uploads/2010/06/iPhone-4-Gyroscope-640x410.jpg


http://opizo.com/AJjJkF

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ شهریور ۹۴ ، ۱۱:۴۷
مدیرکل
منبع : gameover.blog.ir
این کد سطرهای یک فایل رو که شامل لینک های وب هست از فایل 1.txt می خونه و به صورت لینک در تگ a href نشون میده :

<?php
//Link saz
//Author:sajjad3011
$file = fopen("1.txt","r");

while(! feof($file))
  {
 $myStr= fgets($file);
  echo "<a href='" . $myStr . "' >" .   $myStr . "</a><br />";
  }

fclose($file);
?>


۰ نظر موافقین ۰ مخالفین ۰ ۱۲ شهریور ۹۴ ، ۰۳:۵۱
مدیرکل
منبع :gameover.blog.ir
  1. if(!playerController.IsGrounded() && playerController.velocity.y < 0)
  2. {
  3. animation.CrossFade("FallDown", 0.5);
  4. animation["FallDown"].speed = 3;
  5. }


منبع :
http://answers.unity3d.com/questions/776750/fall-animation-when-character-is-falling.html

۰ نظر موافقین ۰ مخالفین ۰ ۱۰ شهریور ۹۴ ، ۱۲:۲۱
مدیرکل

 منبع :gameover.blog.ir

به برنامه ایکلیپس برید و از منوی بالاش Help رو بزنید بعد هم Install New Software.


http://bayanbox.ir/id/3700347232681624161?view


۰ نظر موافقین ۰ مخالفین ۰ ۱۰ شهریور ۹۴ ، ۰۱:۱۲
مدیرکل

منبع : gameover.blog.ir


Edit->Resources->Open Resource Folder

مسیر دیگر

Settings->Manage Resources


مسیر نصب براش ها :

AppData\Roaming\krita\share\apps\krita\brushes


---

فایل های داخل پوشه های Brush و pattern و paintoppressets رو از پوشه ی دانلودی در پوشه های متناظر مسیر AppData\Roaming\krita\share\apps\krita کپی کنید. بعدش krita رو ریست کنید و حالشو ببرید.


۱ نظر موافقین ۰ مخالفین ۰ ۰۹ شهریور ۹۴ ، ۰۵:۴۶
مدیرکل
منبع: gameover.blog.ir
برای اینکار باید به قسمت Global Game settings سربرگ Other برید.

http://s6.picofile.com/file/8209107150/disableDefautKey.jpg


البته بهتره با game maker studio کار کنید و همچنین یادتون باشه کدهای save نداریم و باید از توابع و فایل های ini استفاده کنید.
۰ نظر موافقین ۰ مخالفین ۰ ۰۷ شهریور ۹۴ ، ۱۹:۰۱
مدیرکل

 منبع :gameover.blog.ir



ctrl+shift+B

Player settings

Other settings

miminum api Level

android 2

http://s3.picofile.com/file/8208463468/buildSettingMinimumAndroidRequirement.gif


۰ نظر موافقین ۰ مخالفین ۰ ۰۳ شهریور ۹۴ ، ۲۱:۱۳
مدیرکل
منبع :gameover.blog.ir
<?php
$str = 'php is easy and powerful';
echo preg_match('/php/', $str);
?>
خروجی کد بالا برابر با 1 خواهد بود، البته 1 در اینجا یعنی کلمه مورد نظر در عبارت وجود دارد.

مثال بعدی:
- بررسی یک رشته متنی برای حرف a-z و اعداد 0-9 در JavaScript
در این مثال می خواهیم رشته متنی را در JavaScript بررسی کنیم و ببینیم آیا تنها شامل حروف a-z، اعداد 0-9 و فضای خالی است یا خیر، خواهیم نوشت:
<script type="text/javascript">
var str = 'Regex is so Simple!!';
var reg = /^[0-9A-Za-z ]*$/;
if(reg.test(str)){
    alert('مقادیر معتبر است');
}
else{
    alert('مقادیر معتبر نیست');    
}
</script>

مطالعات بیشتر(منبع webgoo)
http://webgoo.ir/154/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C-%D8%B9%D8%A8%D8%A7%D8%B1%D8%A7%D8%AA-%D8%A8%D8%A7-%D9%82%D8%A7%D8%B9%D8%AF%D9%87-regular-expressions

۰ نظر موافقین ۰ مخالفین ۰ ۰۳ شهریور ۹۴ ، ۰۴:۱۶
مدیرکل

 منبع :gameover.blog.ir


ما توی basic4android یا بعضی زبونا یه چیز داریم به نام Exception یا همون "استثنا"ی خودمون. از این استثنا با نام خلاصه ی e هم توی سیشارپ یا بعضی زبون ها و حتی گاهی جاوا استفاده می شه.

۱ نظر موافقین ۰ مخالفین ۰ ۰۳ شهریور ۹۴ ، ۰۳:۲۹
مدیرکل

 منبع :gameover.blog.ir


velocity

سرعت حرکت یا شتاب رو تعریف می کنه.سرعت دوربین+کامپوننت انیماتور+سیستم ذره ای پارتیکل(دود و جرقه و ....)+بدنه های فیزیکی جامد و سخت(rigid body)+کامپوننت character controller و .... .
۱ نظر موافقین ۰ مخالفین ۰ ۰۱ شهریور ۹۴ ، ۲۳:۴۰
مدیرکل

کپی از : gameover.blog.ir

موقعی که دارم خروجی apk می گیرم خطای زیر رو میده.این خطا برای چیه ؟

UnityException: Minimum platform required is Android 5.0 (API level 21)
[تصویر: android5_0_api_level_21.jpg]

۳ نظر موافقین ۰ مخالفین ۰ ۰۱ شهریور ۹۴ ، ۲۲:۳۳
مدیرکل

منبع : gameover.blog.ir


توی رویداد key press Any key از گیم میکر استادیو اینو بذارید :


کد :

window_set_captionstring(keyboard_lastkey));//room_caption = string(keyboard_lastkey) ;
۰ نظر موافقین ۰ مخالفین ۰ ۰۱ شهریور ۹۴ ، ۰۲:۱۶
مدیرکل