اسکریپت های گیم پلی در یونیتی
دوشنبه, ۳۰ شهریور ۱۳۹۴، ۰۴:۵۵ ب.ظ
منبع: gameover.blog.ir
اسکریپت بالا به زبون js هست.بندازید روی player.اجرا کنید. هرجا کلیک می کنید player میره اونجا.
پارامتر smooth روی 1 تظیم شده.اگه مقدارش بیشتر بشه سرعت حرکت بیشتر میشه.
نکته: اسکریپت فوق برای بازی های استراتژی از نمای کامل بالا کار نمی کنه)
اسکریپت حرکت سه بعدی پلیر در یونیتی/اسکریپت کاراکتر کنترلر:
این اسکریپت رو بدید به player .
نکته: پلیر نباید کامپونتت rigid body داشته باشه.ضمنا یک کامپوننت character controller هم بدید به player.
اسکریپت حرکت دو بعدی player به چپ و راست در یونیتی:
اسکریپت حرکت به جایی که کلیک کردیم 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); }
پارامتر 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.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
۹۴/۰۶/۳۰