gameover.blog.ir
در سایت زیر خصوصیات گوشی های مختلف مثل هو آ وی و ... رو می تونید ببینید مثل رزولوشن و اینچ و screen size و غیره:
gameover.blog.ir
برای دانلود فایل apk به لینک زیر رته و چند ثانیه صبر کنید سپس رد تبلیغ رو بزنید.
فایل apk رو روی گوشی نصب کنید و سپس سوریس های مورد نظر وایرلس رو اجا کنید تا بهتون یک ip بده.
سپس وارد نرم افزار b4a در ویندوز بشید و از منوی tools -> b4a bridge -> connect -> new ip ای پی گوشیتون رو وارد کنید. و سپس اجرا بگیرید.
gameover.blog.ir
برای اینکه تکستچر کش نیاد:
شما باید رو تکسچری که ایمپورت کردید کلیک کنید و از روی 2d sprite به texture تغییر بدین و از وارپ مود گزینه repeat رو بزنیین و apply کنید.
تکستچر رو هم باید بندازید روی یک متریال فکر کنم. بعدش متریال رو drag کن روی ابجکت دلخواه.
http://p30download.com/fa/entry/47693/
دانلود فایل DLL مورد نیاز :gameover.blog.ir
حل:
به مسیر AppData\Local\Adobe\TypeSupport\CS6 برید و هر چی فایل lst هست پاک کنید.
gameover.blog.ir
ترجمه+ویرایش:گیم اور
gameover.blog.ir
منبع :
http://www.gamersland.ir/forum/showthread.php?t=2376FPS Creator X10
حجم: 1.09 گیگابایت
تصویر
دانلود:
http://www.mediafire.com/?nzyu4hnm3nz
http://www.mediafire.com/?2deltmmqzyn
http://www.mediafire.com/?ttigz3yjmnt
http://www.mediafire.com/?orn0z4yzkim
http://www.mediafire.com/?myiizdmdmtj
http://www.mediafire.com/?jfoydym2ynh
http://www.mediafire.com/?cxgnzzdtzwt
http://www.mediafire.com/?njiiw0mnqyd
http://www.mediafire.com/?glukgtfonym
http://www.mediafire.com/?mixyzmymjzt
http://www.mediafire.com/?namdtnnmm3i
http://www.mediafire.com/?te0ijjnymwz
سیستم مورد نیاز برای اجرای این نرم افزار:
- کارت گرافیکی مثل Geforce 8800 GT با یک گیگ حافظه داخلی
- ویندوزی که مجهز به DirecX10 به بالا باشه
اینو هم بگم که یکی از ویژگی های بسیار خوبی که این نرم افزار داره اینکه
میتونید کاراکترها و اشیای ساخته شده توسط نرم افزار های مثل 3D Max رو
وارد این نرم افزار کنید و با این کار میتونید بازیهای بسیار زیبایی
بسازید.
gameover.blog.ir
برای رفع مشکل آموزش هایی در سایت مایکروسافت هست که به رجیستری مراجعه کنید و غیره.
این برنامه رو هم می تونید اجرا کنید تا مشکل رو fix کنه و بعد از reboot سیستم،باتری شارژ خواهد شد.
حجم زیر یک مگ.
برای دانلود به لینک زیر رفته و چند ثانیه صبر کنید و سپس رد تبلیغ رو بزنید:
http://opizo.com/dUbqv6
gameover.blog.ir
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
gameover.blog.ir
این سورس و فلوچارت رو برای سوال یکی از دوستان ساختم. میذارم شاید به کار دیگران هم بیاد:
http://s5.picofile.com/file/8155551050/dec2hex.zip.html
http://s5.picofile.com/file/8155551092/dec2hex.png
gameover.blog.ir
مثال :
در مسیر C:\xampp\htdocs\ini فایلی به اسم sample.ini با محتوای زیر ایجاد کن :
[Cars]
var1 = 1
var2 = 2
<?php
// Parse without sections
$ini_array = parse_ini_file("sample.ini");
print_r($ini_array);
// Parse with sections
$ini_array = parse_ini_file("sample.ini", true);
print_r($ini_array);
?>
Array ( [var1] => 1 [var2] => 2 ) Array ( [Cars] => Array ( [var1] => 1 [var2] => 2 ) )
echo($ini_array["var1"]);
1
gameover.blog.ir
به آدرس زیر رفته و فایلهای داخلش رو پاک کنید:
my Documents\GameMaker\Backups
C:\Users\userName\Documents\GameMaker\Backups
C:\Users\userName\AppData\Local\Temp\msdtadmin
به جای userName پوشه ای که ام کاربری هست رو باز کنید.
gameover.blog.ir
به لینک زیر برید و چند ثانیه صبر کنید سپس رد تبلیغ رو بزنید.
اسکریپت سیشارپ هست.
برای لرزش دوربین پس از انفجار x و y و یکم حرکت بدید تا دوربین تکون بخوره .
روش دیگه اینه که می تونید یک انیمیشن ساده هم بدید به دوربین یه لحظه سریع تکون بخوره..
GAMEOVER.BLOG.IR
به لینک برید و چند ثانیه منتظر بمونید سپ رد تبلیغ رو بزنید.
اسکریپت اول:
اسکریپت دوم:
در این اسکریپ مهم نیست دوربین orthographic باشه یا perpective.
gameover.blog.ir
حرکت پلیر سه بعدی با استفاده از کاراکتر کنترلر و دستور Input.GetAxis("Horizontal") بدون افت فریم ریت:
دستور Input.GetAxis چیست و چگونه کار می کند؟
این دستور کلیدهای افقی و عمودی WASD رو چک می کنه.
اگه هیچکدوم فشرده نبود صفر 0 برگشت میده ویلا یا منفی یک -1 یا مثبت یک +1 برگشت میده.
WS بالا پایین یا عمودی
AD چپ و راست یا افقی
خودمون تعیین می کنیم کدوم رو چک کنه.
اگه افقی فلش چپ و راست AD باید ورودی بدیم horizontal .
مثال:
Input.GetAxis("Horizontal")
اگه عمودی فلش بالا پایین WS باید ورودی بدیم vertical .
مثال:
Input.GetAxis("Vertical")
حالا کجا ازش استفاده میشه؟
برای حرکت کاراکتر میایم xz رو تنظیم می کنیم. x یعنی چپ راست و z یعنی جلو عقب بر حسب مثبت یا منفی بودن مقداری که بهشون میدیم.
پس برای مثال داریم:
moveDirection = new Vector3(Input.GetAxis("Horizontal"), 0,Input.GetAxis("Vertical"));
چون محاسبات محلی هست بایستی به جهانی تبدیل کنیم. پس داریم:
moveDirection = transform.TransformDirection(moveDirection);
دستور Transform Direction، مقادیر XYZ محلی را به مقادیر جهانی تبدیل میکنه.
بعدش یه فاکتور یا متغیر سرعت هم که قبلا باید تعریف کنیم در اون ضرب می کنیم تا مقدار زیاد بشه :
moveDirection *= speed;
در نهایت ازش استفاده میکنیم.
مثلا برای پرش میایم y رو تنظیم می کنیم:
if (Input.GetButton ("Jump")) { moveDirection.y = jumpSpeed; }
jumpSpeed هم متغیری هست قبلا فرض کردیم تعریف شده و سرعت پرش رو مشخص می کنه.
نکته: در حالت پیش فرض، کلید پرش، کلید space است.
ولی شخصیت ما چطوری بعد از پرش به زمین فرود بیاد؟
فرض می کنیم player ما کامپوننت rigidBody نداره .پس شرط بذارید تا زمانیکه y از صفر بیشتر بود این خط اجرا بشه:
moveDirection.y -= gravity * Time.deltaTime;
gravity هم جاذبه هست و از قبل تعریف می کنیم.
Time.deltaTime باعث میشه y طبق زمان کم بشه نه در فریم.(پس یه حرکت فرود نرم تر خواهد داشت)
در نهایت بای یک متغیر از نوع CharacterController بسازید و کامپوننت کاراکتر کنترلر بدید به player و drag کنید روی این متغیر:
public CharacterController controller;
برای حرکت نهایی هم این کد رو بنویسید:
controller.Move (moveDirection * Time.deltaTime) ;
using UnityEngine; using System.Collections; public class RotateCamera : MonoBehaviour { private Vector3 moveDirection = Vector3.zero; void Update (){ float speed=5; float jumpSpeed=5; float gravity=5; float x,y,z; CharacterController controller = GetComponent<CharacterController>(); if (controller.isGrounded) { // We are grounded, so recalculate // move direction directly from axes moveDirection = new 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); } }
https://telegram.me/joinchat/CIaGiT3fzIXzl_ABayBAww
gameover.blog.ir
using UnityEngine; using System.Collections; [RequireComponent(typeof(AudioSource))] public class ExampleClass : MonoBehaviour { public AudioClip clip; void Start() { AudioSource.PlayClipAtPoint(clip, new Vector3(5, 1, 2)); } }
gameover.blog.ir
void Start () { StartCoroutine ("Countdown", 10); } private IEnumerator Countdown(int time){ while(time>0){ Debug.Log(time--); yield return new WaitForSeconds(1); } Debug.Log("Countdown Complete!"); }
نکته: اگه خطا داد ogg رو به ogg تبدیل کنید بعدش با ابزارهای دیگه تست کنید. چون بعضی فرمت های فایل های ogg تلگرام رو فرمت فکتوری یا ogg to mp3 هم نمی تونه تبدیل کنه ولی این می تونه. اگه مشکل mp3 داشت خودش پیام میده به نت وصل میشید و درایور رو می گیره. وگرنه به ogg دوباره تبدیل کنید برید تو پوشه ها می بینید mp3 هم هست.
gameover.blog.ir
برای اینکار باید متغیر Z از پوزیشن دوربین رو زیاد و کم کنید تا دوربین نزدیک یا دور بشه.
مثال:
اسکریپتی بسازید و بدید به دوربین اصلی و این کد رو در تابع آپدیت بذارید(با کلید A و S تست کنید بعد از اجرا):
void Update(){ if (Input.GetKey (KeyCode.A)) { this.transform.position+=new Vector3(0,0,1); } if (Input.GetKey (KeyCode.S)) { this.transform.position-=new Vector3(0,0,1); } }
gameover.blog.ir
نکته: اگه دانلود نشد با شیلتر فکن باز کنید
به لینک زیر رفته 14 ثانیه صبر کرده سپس رد تبلیغ بزنید:
gameover.blog.ir
آنتی آلیاس اگه 1 و 2 و 4 باشه به ترتیب مضاعف میشه و پیکسلی بودن گوشه های مدل رو حذف می کنه و کیفیت میره بالا اما پردزش سنگین میشه و بازی تیک و لگ بر می داره و ممکنه بعضی وقتا کرش کنه.
بدون آنتی آلیاس گوشه ها دندانه دار یا در اصطلاح jagged میشه(اما پردزش بهتره):
بدون آنتی آلیاس:
برای رفع این مشکل آنتی آلیاسینگ رو صفر می کنیم:
QualitySettings.antiAliasing = 0;
gameover.blog.ir
سورس انگری بردز ساده در یونیتی 5.1.0f3
gameover.blog.ir
به این لینک برید و چند ثانیه صبر کنید و سپس رد تبلیغ بزنید:
gameover.blog.ir
نکته ی بسیار مهم:
بعضی اوقات در بعضی ورژن های b4a میایم یک پرروژه دیگه رو که مثلا با ورژن دیگه ساختیم اجرا می گیریم و خطای متغیر ناشناس یا غیره میده. در این حال باید ورژن دقیق اون نسخه رو بدست بیاریم تا بتونیم سورس رو اجرا کنیم.
مثلا اگه متغیری حتی public در اکتیویتی Main تعریف کردیم در ورژن 5.02 میشه با دستور Main.esmeMoteghayyer بهش دسترسی داشت اما تو ورژن های دیگه خطا میده.(esmeMoteghayyer اسم متغیری هست که در اکتیویتی Main از نوع public تعریف کردیم)
مثلا این سورس دزدگیر همراه رو در نظر بگیرید:
این سورس فقط روی basic4android version 5.02 اجرا میشه و روی ورژن های بالاتر یا پایین تر اجرا نمیشه.
پس ابتدا برنامه basic4android version 5.02 رو از این لینک دانلود کنید:
http://www.mediafire.com/download/cxao99um6iw1iss/B4A+5.02+Retail.zip
روش نصب b4a version 5.0.2:
داخل پوشه crack رمز هستReadMe.txt هست اونو بخونید روش نصب رو گفته:
فایل های داخل پوشه ی License & DLL رو کپی کنید در مسیر نصب b4a verion 5.0.2
سپس داخل پوشه ی License Generator رفته و روی فایل
License Generator_b4airanamozesh.ir راست کلیک کنید و run as admin رو
بزنید تا تحت ادمین در ویندوز 7 جرا بشه سپس Basic4Android رو انتخاب کرده و
یک ایمیل الکی مثلا ali@yahoo.com رو وارد کنید و Generate رو بزنید تا یک
فایل تولید بشه. سپس اون فایل رو کپی کنید در مسیر نصب basic4android
version 5.0.2
--
حالا می تونید سورس دزدگیر همراه رو داخلش باز کرده و اجرا بگیرید.
gameover.blog.ir
GetComponent رو توی آپدیت ننویسید سعی کنید کش کنید
cache یعنی ادرس محسابه شده ی حافظه رو بریزید تو متغیر دیگه و از اون
رفرنس استفاده کنیدبعد از _transform استفاده کنید. برای ریجید بادی هم
همین تکنیک رو بکار بگیرید
تو استارت که می ذاری یک بار می ره آدرس حافظه رو پیدا می کنه.
void Start(){ _transform = this.transform;//cache for optimization }
gameover.blog.ir
View | import plane | import image
gameover.blog.ir
یعنی محدود کردن. مثلا متغیری رو با تابع Clamp بین 1 و 10 محدود می کنیم تا اگه مقداری کمتر یا بیشتر بود در inspector به طور خودکار به میزان حداکثر یا حداقل تنظیم بشه.
gameover.blog.ir
دقت کنید برای اینکار یک اشعه یا ray باید به سمت جلو یا forward تا فاصله(distace) دلخواه پرتاب کنیم. در صورتی که برخورد صورت گرفت باید تشخیص بدیم با چی برخورد انجام شده. برای اینکار ابتدا به درب یک برچسب یا تگ(tag) دلخواه مثلا door می دیم. سپس از طریق کد بررسی می کنیم اگر با درب برخورد داشتیم یا درب روبروی دید دوربین بود انیمیشن باز شدن درب اجرا بشه.
نکته ی مهم: شما باید گزینه ی loopTime از انیمیشن خودتون رو در inspector غیرفعال کنید تا انیمیشن تکرار نشه.
bool isOpen=false;
float distance=3f;
void myRaycast(){ RaycastHit hit; Ray myRay = new Ray(transform.position, Vector3.forward); if(Physics.Raycast (myRay, out hit, distance)){ if(hit.collider.tag == "door" && isOpen==false){ Animation.Play("openDoor"); isOpen=true; }//if internal }//if external }//myRaycast()
gameover.blog.ir
این تنظیمات در منوی Edit | Graphics Emulation هست. برای انتخاب شبیه ساز کارت های گرافیکی ایکس باکس و کنسول و اینتل و ان ویدیا و موبایل و غیره.
البته شبیه ساز ها کمی سیستم رو کند می کنن(مثل برنامه blue Stacj وسه شبیه سازی اندروید روی سیستم که سخت افزار رو شبیه سازی می کنن)
gameover.blog.ir
لحظه ی مرگ استیو جابز:
به لینک زیر برید و چند ثانیه صبر کنید سپس رد تبلیغ رو بزنید
gameover.blog.ir
فرمت PDf
حجم زیر یک مگ
بهع لینک زیر برید و چد ثانیه صبر کنید سپس رد تبلیغ بزنید
gameover.blog.ir
مثال:
public Animator myAnimator; void Start(){ int randomValue=Random.Range(0,3); myAnimator.SetInteger("AttakType",randomValue); }
gameover.blog.ir
using UnityEngine; public class MyScript : MonoBehaviour { void OnGUI() { #if DEMO GUILayout.Label("This is a demo version"); #endif } }
gameover.blog.ir
با استفاده از این پکیج می تونید یک اجرا کننده ی فایل mp3 ایجاد کنید و فایل های صوتی رو اجرا کرده،پاز یا استاپ کنید. و همینطور با لمس یا کلیک دکمه ی next و prev به فایل صوتی بعدی یا قبلی سوئیچ کنید. البته باید لیست فایل ها رو از قبل درون برنامه جاسازی کنید. به هر حال به درد زمانی می خوره که می خواید حین بازی بین اهنگ های موجود سوئیچ کنید و با اون اهنگ دلخواه ، بازیتون رو ادامه بدید یا ایده های دیگه ای از این قبیل که می تونید خودتون اون رو ویرایش کنید.
gameover.blog.ir
به لینک زیر برید و چند ثانیه صبر کنید بعدش رد تبلیغ رو بزنید:
state machine behaviour ها توسط C# سیشارپ ایجاد شدند.
همه ی state machine behaviour ها از کلاس پایه ی یکسانی ارث می برند:StateMachineBehaviour
از آنجا که آنها از ارث بری(inheritance) پشتیبانی می کنند،اگر تابعی وجود داشته باشد می توانید آن را به کلاسهای چندگانه بیافزایید.
سپس به آسانی می توان به آن دست یافت.
برای اطلاعات بیشتر در مورد inheritance (ارث بری) اطلاعات پیوست شده در زیر را بخوانید.
override public void OnStateEnter (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { }
The Animator parameter is a reference to the specific animator
that this state machine behaviour is on.
For example, this could be used to set the values of animator parameters that were only necessary in this state, such as those for a blend tree.
The AnimatorStateInfo is the current info for the state that the state machine behaviour is on. It is the equivalent of writing animator.GetCurrentStateInfo(layerIndex); This can be useful in operations that involve the normalised time of the clip.
The layerIndex is the layer the state machine behaviour’s state is on. For example, zero for the base layer, one for the first, and so on.
As with MonoBehaviours, the functions of a StateMachineBehaviour are called under specific circumstances.
OnStateEnter is called on the first frame of the state being played.
OnStateUpdate is called after MonoBehaviour Updates on every frame whilst the animator is playing the state this behaviour belongs to.
OnStateExit is called on the last frame of a transition to another state.در آخرین فریم یک انتقال به وضعیت دیگر فراخوانی می شود
OnStateMove is called before OnAnimatorMove would be called in MonoBehaviours for every frame the state is playing. When OnStateMove is called, it will stop OnAnimatorMove from being called in MonoBehaviours.
OnStateIK is called after OnAnimatorIK on MonoBehaviours for every frame the while the state is being played. It is important to note that OnStateIK will only be called if the state is on a layer that has an IK pass. By default, layers do not have an IK pass and so this function will not be called. For more information on IK see the information linked below.
OnStateMachineEnter is called on the first frame that the animator plays the contents of a Sub-State Machine.
OnStateMachineExit is called on the last frame of a transition from a Sub-State Machine.
مثال:
using UnityEngine; public class SpecialAttackParticlesSmb : StateMachineBehaviour { public GameObject particles; // Prefab of the particle system to play in the state. public AvatarIKGoal attackLimb; // The limb that the particles should follow. private Transform particlesTransform; // Reference to the instantiated prefab's transform. private ParticleSystem particleSystem; // Reference to the instantiated prefab's particle system. // This will be called when the animator first transitions to this state. override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // If the particle system already exists then exit the function. if(particlesTransform != null) return; // Otherwise instantiate the particles and set up references to their components. GameObject particlesInstance = Instantiate(particles); particlesTransform = particlesInstance.transform; particleSystem = particlesInstance.GetComponent <ParticleSystem> (); } // This will be called once the animator has transitioned out of the state. override public void OnStateExit (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // When leaving the special move state, stop the particles. particleSystem.Stop(); } // This will be called every frame whilst in the state. override public void OnStateIK (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { // OnStateExit may be called before the last OnStateIK so we need to check the particles haven't been destroyed. if (particleSystem == null || particlesTransform == null) return; // Find the position and rotation of the limb the particles should follow. Vector3 limbPosition = animator.GetIKPosition(attackLimb); Quaternion limbRotation = animator.GetIKRotation (attackLimb); // Set the particle's position and rotation based on that limb. particlesTransform.position = limbPosition; particlesTransform.rotation = limbRotation; // If the particle system isn't playing, play it. if(!particleSystem.isPlaying) particleSystem.Play(); } }
override public void OnStateEnter (Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { player = GameObject.Find(“Player”); }
using UnityEngine; public class ExampleMonoBehaviour : MonoBehaviour { private Animator animator; // Reference to the Animator component on this gameobject. private ExampleStateMachineBehaviour exampleSmb; // Reference to a single StateMachineBehaviour. void Awake () { // Find a reference to the Animator component in Awake since it exists in the scene. animator = GetComponent <Animator> (); } void Start () { // Find a reference to the ExampleStateMachineBehaviour in Start since it might not exist yet in Awake. exampleSmb = animator.GetBehaviour <ExampleStateMachineBehaviour> (); // Set the StateMachineBehaviour's reference to an ExampleMonoBehaviour to this. exampleSmb.exampleMb = this; } }
using UnityEngine; public class ExampleStateMachineBehaviour : StateMachineBehaviour { public ExampleMonoBehaviour exampleMb; }
gameover.blog.ir
پکیج EhneHeacy 1.3.1 یک پکیج بسیار پر ترفدار برای کاربرانی است که با نرم افزار یونیتی 3D کار میکنند
این پکیج کار شما را ساده تر میکند مثلا برای فعال یا غیر فعال کردن آبجکت ها را آسان میکند
در کل این پکیج پنجره ی Hierarchy را که در نرم افزار یونیتی میباشد را پیشرفته میکند
و همچینین امکانات این پنجره را بیشتر میکند
از نظر من حتما دانلود کنید زیرا که سریع تر میتوانید پروژه ی خود را تکمیل کنید !!!!!!!
(منبع اش یادم نیست ویلا میذاشتم)
gameover.blog.ir
رمز: ams
gameover.blog.ir
Edit -> Project Settings -> Physics
در این قسمت لایه های تعریف شده نشون داده میشه.
می تونید مثلا چند cube تو لایه دلخواه بذارید بعدش تو ماتریس تصادم لایه هایی که می خواید برخورد صورت نگیره و rigidBody اون لایه ها روی هم عمل نکنه و در هم فرو بره رو در خروجی تست کنید.
مثلا به عکس زیر نگاه کنید:
لایه 1 با لایه 2 و 3 تصادم نخواهد داشت.و فیزیک اشیایی که در این لایه ها قرار بدیم روی هم تاثیری نداره.
لایه ی 2 با لایه 3 هم تصاد نداره.
می تونید اشیا رو تو لایه ها بذارید و از ارتفا بندازید زمین(بهشون ریجید بادی بدید) و نتیجه اجرا رو ببنید. اسم لایه ها رو دقت کنید طبق عکس تنظیم کنید. یا دلخواه.
gameover.blog.ir
مخفی کردن متغیر ها از inspector و hierarchy :
برای اینکار از این کدها کمک می گیریم :
HideFlags.HideInHierarchy; HideFlags.HideInInspector;مثال:
using UnityEngine; public class MyHideFlags : MonoBehaviour { public HideFlags myHideFlags; void OnEnable() { hideFlags = myHideFlags; } }
gameover.blog.ir
ابتدا به دشمن یک کاراکتر کنترلر بدید(با زدن دکمه add component) یا Component/Physics/Character Controller.
این دو خط رو سعی کنید بالای اسکریپت باشه(اگه تکراری بود باید حذف کنید):
using UnityEngine; using System.Collections;
public class Enemy : MonoBehaviour { public float speed = 4f; public float jetPackSpeed = 0.3f; public float jumpSpeed = 8f; public float gravity = 10; private Transform _Player; private CharacterController character; private Transform tr; private float vSpeed = 0f; private bool jump = false; void Start () { _Player = GameObject.FindGameObjectWithTag("Player").transform; character = GetComponent<CharacterController>(); tr = transform; } void Update () { // find the vector enemy -> player Vector3 chaseDir = _Player.position - tr.position; chaseDir.y = 0; // let only the horizontal direction float distance = chaseDir.magnitude; // get the distance if (distance <= 2) Debug.Log("Attacking Player"); else { // find the player direction Quaternion rot = Quaternion.LookRotation(chaseDir); // rotate to his direction tr.rotation = Quaternion.Slerp(tr.rotation, rot, Time.deltaTime * 4); if (character.isGrounded){ // if is grounded... vSpeed = 0; // vertical speed is zero if (jump){ // if should jump... vSpeed = jumpSpeed; // aplly jump speed jump = false; // only jump once! } } else // but if lost ground, check if it's an abyss if (!Physics.Raycast(tr.position, -tr.up, 20f)){ // if no ground below vSpeed = jetPackSpeed; // use jetpack } vSpeed -= gravity * Time.deltaTime; // apply gravity // calculate horizontal velocity vector chaseDir = chaseDir.normalized * speed; chaseDir.y += vSpeed; // include vertical speed // and move the enemy character.Move(chaseDir * Time.deltaTime); } } // if collided with some wall or block, jump void OnControllerColliderHit(ControllerColliderHit hit){ // only check lateral collisions if (Mathf.Abs(hit.normal.y) < 0.5){ jump = true; // jump if collided laterally } } }
gameover.blog.ir
سوال:
دوستان من یه مشکلی دارم اون اینکه تو 3d max قسمت هایی رو Detach می کنم
ولی وقتی وارد یونیتی می کنم اون قسمت ها به صورت شی تو خالی نمایش داده
میشه . کمک کنید بد جور گیر کردم .
عکس :
in 3dmax
in unity:
جواب:
بهش shell بدید.
gameover.blog.ir
این دو تابع با play بازی به صورت خودکار اجرا میشن..
awake سریعتر call (فراخوانی) میشه...
اگه تیک اسکریپت رو غیر فعال کنیم، تابع Awake فقط اجرا میشه ... ولی اگه اسکریپت فعال باشه اول awake و سپس Start اجرا میشه...
تابع start و awake فقط یکبار اجرا میشن...
دقت کنید که چه اسکریپت فعال باشه چه نباشه، awake همیشه اجرا میشه.... ولی start با فعال بودن اسکریپت، و همینطور بعد از Awake...
ولی update بارها call میشه مثل رویداد step توی game maker....
---
مثال :
اسکریپت سیشارپی به نام script1.cs ایجاد کنید و کد زیر رو بریزید توش:
using UnityEngine; using UnityEditor; using System.Collections; public class script1 : MonoBehaviour { void Awake () { Debug.Log("Awake called."); } void Start () { Debug.Log("Start called."); } }
Google Play services
ابزاری ضروری برای بهروزرسانی برنامهها از گوگل پلی. این برنامه دسترسی شما را به تنظیمات گوگلی میسر میسازد و به برنامهها کمک میکند در حالت آفلاین سریعتر جستجو کنند. نقشههای بهتر و کارائی بهبود یافته.
اخیراً برخی برنامههای شرکت گوگل از جمله برنامه تازه منتشر شده Keep و Hangouts برای اجرا نیازمند نصب این برنامه هستند.
اگر این برنامه را پاک کنید ممکن است بقیه برنامههای شما از کار بیفتند. قطعاً به این ابزار نیاز دارید.
به این لینک رفته و پس از چند ثانیه رد تبلیغ رو بزنید:
http://opizo.com/PgQd3F
gameover.blog.ir
این آموزش خیلی خلاصه زیر یک مگ هست و شما رو با مدلسازی دست به صورت لو پولیگان low polygon آشنا می کنه.
حجم:زیر یک مگ
فرمت : PDF
به لینک رفته و 14 ثانیه صبر کنید بعدش رد تبلیغ رو بزنید:
gameover.blog.ir
هر فایل apk یک امضای الکترونیکی داره که مختص توسعه دهنده اون هست این امضای الکترونیکی رو فقط توسعه دهنده در اختیار داره
بیسیک هنگام کامپایل به صورت پیش فرض apk رو با debug key امضا میکنه که این امضا یک امضای عمومی هست و همه اون رو در اختیار دارن و مختض برنامه شما فقط نیست
گوگل پلی از همون ابتدا این قانون رو داشت که برنامه رو نباید با debug key آپلود کنید به نظر میرسه بازار هم به تازگی این قانون رو پیاده کرده که به نفع خود توسعه دهنده هست
--------------------
برای basic4android:شما برای حل این مشکل باید به قسمت Tools < private sign key برید و اطلاعاتی رو که برای یک امضای جدید لازمه وارد کنید تا فایل امضای شما رو در محل مورد نظر ذخیره کنه بعد شما هر وقت که خواستین کامپایل نهایی خودتون رو از برنامه بگیرید به قسمت Tools < private sign key برید و فایل امضای خودتون رو لود کنین و از برنامه کامپایل بگیرین
منبع :
gameover.blog.ir
اول بازیتون باید توی کافه بازار تایید بشه مثلا یه بازی رایگان که تایید شده.
اسمش هست com.sherkateMan.eseBarname
این com.sherkateMan.eseBarname رو کپی می کنی می برید توی adad.ir
بهتون یک شناسه می ده که اونو باید بذارید توی قسمت token در فایل AndroidManifest.xml
دمانیفست و فایل های jar رو جتما در پوشه ی assets->Plugins->Android میذارید
اگه پوشه نبود ایجادش کن.
بعدش اسکریپت سیشارپ رو نسبت میدین به پریفب و پریفب رو می کشیش تو صحنه
همین تمام
توی فایل مانیفست test mode رو روی false می ذاریم تا در حالت تست نباشه.
اینم فایل های لازم jar و prefab و اسکریپت سیشارپی که بای بدید به پریفب:
برای دانلود ابتدا به لینک زیر برید و چند ثانیه صبر کرده و سپس رد تبلیغ رو بزنید
نکته مهم: حتما از یونیتی 5.2 به بالا استفاده کنید چون یونیتی 5.1 و قدیمی تر تظیمات اینترنت و غیره رو به مانفست اعمال نمی کنه و باید دستی اعمال کنید اما یونیتی 5.2 به بالا خودکار تنظیمات نیاز به اینترنت و بعضی تنظیمات اصلی رو اعمال می کنه.
gameover.blog.ir
Overloading یا سربارگذاری:
متد های که نام یکسان دارند اما پارامتر های ورودی متفاوتی دارند، برای مثال public bool Retrieve() و public bool Retrieve(int id) در این مثال متد Retrieve دارای دو overload است. OverLoading زمانی است که شما چند متد همنام در یک محدوده (scope) با امضاهای (signatures) متفاوت دارید .
همچنین Overloading چند ریختی زمان کامپایل (Compile Time Polymorphism) می باشد .
//Overloading public class test { public void getStuff(int id) {} public void getStuff(string name) {} }
Overriding یک اصل یا قانون است که به شما اجازه می دهد تا قابلیت های متدها را در کلاس های مشتق شده تغییر دهید
همچنین Overriding چند ریختی زمان اجرا (Run Time Polymorphism) می باشد.
//Overriding public class test { public virtual getStuff(int id) { //Get stuff default location } } public class test2 : test { public override getStuff(int id) { //base.getStuff(id); //or - Get stuff new location } }
gameover.blog.ir
return برای توابعی بکار می ره که نوعشون void نباشه. مثل int یا float یا string یا ....
مثلا وقتی یک تابع جمع می نویسیم دو عدد رو جمع می کنیم باید مقدار حاصل رو
توی اسم تابع برگشت بدیم. دقت کن اسم تابع خودش یک متغیر هست.
اگه نوع تابعی void یا غیر برگشتی باشه تهش نباید return بزنیم ویلا خطا میده.
float sum(int a,int b){ return(a+b); }
gameover.blog.ir
پارامتر Trigger در پنجره ی Animator یک متغیر با اسم دلخواه از نوع Boolean هست که بعد از انتقال یا سوئیچ بین دو انیمیشن مقدارش خودکار False میشه.(نکته:صفر یعنی false و هر چیزی غیر از صفر یعنی True)
با کد سیشارپ هم میشه پارامتر رو True کرد خودکار:(ضمنا بعد از انتقال خودکار False میشه)
Animator.SetTrigger("esmeParameter");
Animator.ResetTrigger("esmeParameter");
gameover.blog.ir
یکی از تنظیمات occlusion culling و یکی از تنظیمات دیگه گزینه ی near
دوربین هست. near پارامتر نزدیک بودن هست.مثلا اگه بهش عدد 10 بدیم اشیا تا
10 متری رندر میشه و باقی رندر نمیشه مگه اینکه پلیر حرکت کنه و تا مرز ده
متر اشیا رندر میشه.
تکنیک دیگه اینه که بیایم خودمون اسکریپت بنویسیم ابتدا آرایه ای بسازیم که کل اشیای صحنه داخلش باشه.(یعنی از نوع GameObject باشه)
سپس Tag هر گیم ابجکت رو چک کنیم اگه غیر از tag زمین و خودمون بود شرط دوم رو اجرا کنیم و اون اینه :
با تابع Vector3.Distance به الگوی
public static float Distance(Vector3 a, Vector3 b);
DPI (dots per inch)
تعداد نقطه در هر اینچ
دقت کنید اسکریپت test.cs زیر رو بدید به دوربین اصلی و دوربین رو بکشید روی متغیر mainCam رها کنید و یادتون نرده گیم ابجکت سه بعدی اسپرایت(sprite) دو بعدی شما حتما باید Collider سه بعدی(3d) داشته باشه نه box collider 2d یا ... .
به هر شی یک Tag بدید و بعد از اجرا روی هر شی دلخواه کلیک کنید اسم تگ رو برگشت میده. با بازی کردن و تغییر اسکریپت شما می تونید استفاه های بیشتری ببرید. موفق باشید
using UnityEngine; using System.Collections; //GameObject touch detection
//Author:sajjad3011
public class test : MonoBehaviour { public Camera mainCam; RaycastHit hit; void Update () { try{ Ray ray = mainCam.ScreenPointToRay(Input.mousePosition); RaycastHit hit; if (Physics.Raycast(ray, out hit)) if (Input.GetMouseButtonDown(0)) {Debug.Log(hit.collider.tag);} } catch{ } } }
منبع:gameover.blog.ir
سازنده:گیم آور
در این آموزش دو صحنه ساده ایجاد می کنیم و دو دکمه می ذاریم که روی همه رزولوشن ها اجرا میشه و بهش رویداد کلیک می دیم و مرحله رو لود می کنیم.(بدون save)
آموزش خیلی ساده هست و فایل متنی PDF همراه اسکریپت وجود دارد. این آموزش برای افراد خیلی مبتدی هست که می خوان دکمه ای ایجاد کنن و می خوان با کلیک روی او یک عملی انجام بشه.
دانلود فیلم:
منبع:gameover.blog.ir
سازنده:گیم آور
تشکر و نظر یادتون نره اگه به دردتون خورد.
در
این فیلم آموزش ساخت یک گیم پلی سه بعدی برای اندروید و حرکت پلیر با جوی
استیک مجازی و تنظیم تکستچر زمین در یونیتی 5 رو یاد می گیرید .
به
کمک جوی استیک مجازی به سادگی پلیر رو حرکت می دید به چپ و راست و جلو و
عقب به همراه دکمه ی jump که با لمس عمل پرش رو برای پلیر انجام میده.
تکستچر زمین رو تنظیم می کنیم که کیفیت بهتر بشه از طریق تکرار و tiling.
خروجی هم با ctrl+shift+B می تونید خودتون روی android بسازید.
باز هم سوالی بود پشتیبانیتون می کنیم توی gameover.blog.ir و کانال تلگرام که توی وبلاگ لینک هست.
علت ساخت این آموزش این بود که برنامه نویسی سیشارپ شما بهتر بشه.
ضمنا سورس پروژه هم هست به همراه فایل متنی آموزش.
یادتون نره حتما باید برنامه 7zip رو برای باز کردن آموزش داشته باشید.
رمز : gameover
کیفیت فیلم عالی هست و کاملا واضح. هر مشکلی توی دانلود براتون پیش اومد توی کانال تلگرام و وبلاگ مطرح کنید ما لینک مستقیم آموزش رو روی mediaFire بهتون میدیم تا مستقیم دانلود کنید.
رایگان
فیلم:
سورس:
Non-convex MeshCollider with non-kinematic Rigidbody is no longer supported in Unity 5. If you want to use a non-convex mesh either make the Rigidbody kinematic or remove the Rigidbody component. Scene hierarchy path "plane_h1", Mesh asset path "" Mesh name "Plane"
void Start(){ public static void Destroy(this, 5.1f); }
http://blog.ir/panel/gameover/post_edit/#new
gameover.blog.ir
اموزش ساخت منو توقف بازی در یونیتی
کد توقف pause بازی در یونیتی:
Time.timeScale=0;
Time.timeScale=1;
توقف موقت بازی:private IEnumerator Pause(int p)
{
Time.timeScale = 0.1f;
yield return new WaitForSeconds(p);
Time.timeScale = 1;
}
private IEnumerator Pause(int p)
{
Time.timeScale = 0.1f;
float pauseEndTime = Time.realtimeSinceStartup + 1;
while (Time.realtimeSinceStartup < pauseEndTime)
{
yield return 0;
}
Time.timeScale = 1;
}
روش js:منسوخ
function PauseWaitResume (pauseDelay : float) { Time.timeScale = .0000001; yield WaitForSeconds(pauseDelay * Time.timeScale); Time.timeScale = 1.0; }
کد توقف بازی در یونیتی 5:
آرام کردن زمان در لحظه ی تیر زدن و حرکت slow motion:
using UnityEngine; using System.Collections; public class ExampleClass : MonoBehaviour { void Update() { if (Input.GetButtonDown("Fire1")) { if (Time.timeScale == 1.0F) Time.timeScale = 0.7F; else Time.timeScale = 1.0F; Time.fixedDeltaTime = 0.02F * Time.timeScale; } } }
دوستان تازه کار کدها رو کپی پیست نکنید فقط سعی کنید یاد بگیرید مفهومش رو تا بتونید تغییر بدید. سوالی بود بپرسید.
GameObject.Rotation=new Vector(0,90,0);
به نام خدا
gamersLinkFinder کاری از گیم آور به طور رایگان برای شما.
آیا دوست دارید بهترین مطالب بازی سازی و بهترین پکیج های بازیسازی به دستتون برسه؟
لینک
یاب بازی سازی اپلیکیشنی هست که لینک های PDF و پکیج های یونیتی وبازی
سازی رو در اختیار شما قرار میده تا به طور مستقیم بتونید با مرورگر
گوشیتون دانلود کنید.
با استفاده از این اپلیکیشن قادر خواهید بود روی
گوشیتون به مفیدترین مطالب و به روزترین لینک های بازی سازی دسترسی داشته
باشید و دیگه وقتتون هدر نره و خیلی سریع بهترین آموزش ها رو دریافت کنید.
در هر آپدیت لینک های مفیدی در اختیارتون قرار می گیره.
پس یادتون نره حتما این اپلیکیشن رایگان رو همین الان دانلود کنید تا از دنیای بازیسازی عقب نمونید.
همچنین برخی آموزش های مفید هم در این اپلیکیشن قار خواهد گرفت.
فایل apk :
http://s7.picofile.com/file/8238131750/gamersLinkFinder.apk.html
در آینده این اپلیکیشن آپدیت خواهد شد انشاءا... .
gameover.blog.ir
کرک ورژن 5.X :
http://opizo.com/WpLPzb
https://s1.picofile.com/file/8226922692/Crack_UnitySetup64_5_2_1f1.zip.html
ابتدا آپتانا استادیو رو از سایت اصلیش بگیرید:
سعی کنید به اینترنت وصل باشید چون نیاز به دانلود پیش نیاز ها داره.
وسط نصب ممکنه خطا بده.
برای رفع مشکل باید nodejs installer مخصوصش رو نصب کنید قبلش.. من برای دانلود در اختیارتون گذاشتم.
دقت کنید هم ورژن x86 هم x64 از nodejs رو باید روی ویندوز نصب کنید و دقیقا این ورژن باید دانلود کنید.
به این لینک برید و پس از چند ثانیه رد تبلیغ رو بزنید تا به دانلود مستقیم برید:
دقت کنید هر دو فایل زیر رو دانلود کنید :
http://opizo.com/z8zPfY
http://opizo.com/SSO8oh
پس از نصب دوباره برید آپتانا استادیو رو نصب کنید. یادتون نره به اینترنت وصل باشید.
موفق باشید.
===
پیکربندی و کانفیگ aptana studio برای اجرای پایتون:
وقتی یک new project از نوع pydev ایجاد می کنید ممکنه خطای Project interpreter not specified بده.
باید ب/بای فع مشکل باید مسیر window > preferences > PyDev > Interpreter - (Python/Jython/IronPython). رو روی Auto Config یا Quick Auto Config بزنید تا خودکار تنظیمات پایتون رو انجام بده.
نکته بعدی:
موقع اجرا اولین فایل main.py اجرا میشه.
اگه print کار نکرد و یک hello world ساده اجرا نشد. کلید F9 رو فقط کافیه بزنید.
execute_program('uploader.exe','',false)
gameover.blog.ir
سازنده:مهدی+سجاد
این جلسه اسکریپت به شما برنامه نویسی way point آموزش داده میشه به طوری که می تونید به سرعت یاد بگیرید خودتون برنامه ای بنویسید تا در محیط ویرایش قبل از runTime یعنی محیط Scene Editor با استفاده از توابع Draw بین اشیای مختلف خط ارتباط ترسیم کنید تا بهتر از طراحی های خودتون مخصوصا در بازی های مهندسی شده استفاده کنید. کیفیت آموزش عالی هست و هر مشکلی بود توی وبلاگ ما و گروه تلگرام پاسخگو خواهیم بود انشاءا... .
gameover.blog.ir
کد روشن و خاموش کردن چراغ/روشن و خاموش کردن لامپ/خاموش و روشن کردن چراغ/خاموش و روشن کردن لامپ:
public GameObject lamp;
برای کلیک دکمه ی دلخواه این کد رو بذارید که هر بار not می کنه (علامت تعجب ! به معنی نات یا معکوس کردن از true به false یا بلعکس می باشد):
target.SetActive(!target.activeSelf);
gameover.blog.ir
تگ یا Tag عنی برچسب یا اسم مستعار.
توی html ما قبلا به چند تا ابجکت id می دادیم که ثابت بود و هر ابجکت یه
اسم ثابت داشت نمی تونستیم تغییرش بدیم ولی می تونستیم یه کلاس یا class
تعریف کنیم و همه ی ابجکت های لخواه رو از نوع اون کلاس تعریف کنیم یا
برچسب بزنیم. بعدش که میخواستیم تغییراتی روی اون ابجکت ها ایجاد کنیم دیگه
دستی اینکار سخت بود. کافی بود اسم اون کلاس رو داشته باشیم و خصوصیاتشو
دستکاری کنیم یا بهشون دستیابی داشته باشیم.
توی html چیزی بود تو مایه های tagByName یا tagByID که بهش ایدی میدادیم و
خودش همه رو لیست می کرد بعدش میریختیم توی ارایه و با یه حلقه ی تکرار به
کل ابجکت های ریخته شده توی ارایه دسترسی داشتیم و یه سری عملیات کلی روی
اونا انجام میدادیم.
توی unity یه چیز توی همون مایه ها هست یبه اسم tag.
مثلا من سه تا دوربین دارم:
cam1
cam2
cam3
--
به هر سه تاشون برچسب cam می زنم
بعدش با کدی مثل این همشون رو غیر فعال می کنم:
//Disable all cameras with tag 'cam' var cameras = GameObject.FindGameObjectsWithTag("cam"); for (var cams : GameObject in cameras) { cams.GetComponent(Camera).enabled = false; }بعدش با کد دوربین رو فعال می کنم:
منبع:gameover.blog.ir
http://www.mediafire.com/download/ur2egvx855irm9e/soldier_ArmyPilot-20Animation.7z
نکته :
باید حتما برنامه 7zip رو داشته باشید برای اینکه فایل فشرده شده با پسوند 7z هست.
gameover.blog.ir
بعد از چند ثانیه رد تبلیغ رو بزنید(حجم 14 کیلو بایت )
Bouncy.physicmaterial فیزیک ماده فنر
Collision_Material.physicMaterial فیزیک ماده ی تصادم یا برخورد
Ice.physicmaterial فیزیک ماده یخ
Metal.physicmaterial فیزیک آهن
Rubber.physicmaterial فیزیک لاستیک
Vehicle.physicMaterial فیزیک وسیله نقطه
Wood.physicmaterial فیزیک چوب
منبع:gameover.blog.ir
عکس گرفتن از صفحه گوشی اندروید
برای اینکار کلید Volume down و Power رو با هم چند لحظه نگه دارید: