lightwolfz   02-23-2014, 05:23 PM
#1
คือตามหัวข้อเลยนะครับ ผมอยากทำระบบเกมให้มีคอมโบ ด้วยตอนนี้ใช้แค่ melee attack ธรรมดา

นี่คือสคริปต์ที่ผมใช้ครับ
Quote:var TheDamage : int = 50;
var Distance : float;
var MaxDistance : float = 1.5;
var weapons : Transform;

function Update ()
{
if (Input.GetButtonDown("Fire2"))
{
weapons.animation.Play ("Punch 2");
var hit : RaycastHit;
if (Physics.Raycast (transform.position, transform.TransformDirection(Vector3.forward),hit))
{
Distance = hit.distance;
if (Distance < MaxDistance)
{
hit.transform.SendMessage("ApplyDamage",TheDamage, SendMessageOptions.DontRequireReceiver);
}
}
}
}


ฝากขอบคุณล่วงหน้าเลนนะครับ ConfusedConfused

Y me gusta muchoY me gusta muchoY me gusta muchoY me gusta muchoY me gusta muchoY me gusta mucho
PrwC   02-23-2014, 08:42 PM
#2
คอมโบที่ว่านี่เป็นในลักษณะไหนครับ ยังไม่ค่อยเข้าใจเน้อ
Author   02-24-2014, 12:11 AM
#3
โค้ดด้านบนเขียนเองรึเปล่าครับ ?
ถ้าก็อบมาก็ต้องทำความเข้าใจให้ได้ก่อนนะครับ ว่าโค้ดพวกนี้มันทำอะไรบ้าง

คอมโบนี่หมายถึงฟันติดต่อกันหลายๆทีใช่มั้ยครับ?
ถ้าเอาแบบ simple ก็เช็คดักต่อง่ายๆ สมมุติในโค้ด

เพิ่มตัวแปรมาดัก combo ซักตัว

Code:
var comboList : int = 0; // สร้างตัวแปรมาดักเช็ค combo

if (Input.GetButtonDown("Fire2") && comboList == 0)
{
   weapons.animation.Play ("Punch 2"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 1
   comboList = 1;
   //ต้องเช็คเวลากดครั้งต่อไปด้วย

}else

if(Input.GetButtonDown("Fire2") && comboList == 1 && //เวลาที่จะกดครั้งต่อไป)
{
     weapons.animation.Play ("Punch 3"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 2
}

//เสร็จแล้วนับเวลาเล่นอนิเมชั่นท่า 2 ให้จบ แล้วเด้ง comboList กลับเป็น 0 ใหม่

ถ้าจะเอา Advance หน่อย แนะนำ Animation Event (กด Ctrl + 6) ครับ
มันใช้รัน Method ระหว่างเล่น Animation ได้ ดัก Combo ได้ง่ายกว่า แต่ต้องศึกษานิดนึงครับ
lightwolfz   03-12-2014, 03:58 PM
#4
(02-24-2014, 12:11 AM)Author Wrote: โค้ดด้านบนเขียนเองรึเปล่าครับ ?
ถ้าก็อบมาก็ต้องทำความเข้าใจให้ได้ก่อนนะครับ ว่าโค้ดพวกนี้มันทำอะไรบ้าง

คอมโบนี่หมายถึงฟันติดต่อกันหลายๆทีใช่มั้ยครับ?
ถ้าเอาแบบ simple ก็เช็คดักต่อง่ายๆ สมมุติในโค้ด

เพิ่มตัวแปรมาดัก combo ซักตัว

Code:
var comboList : int = 0; // สร้างตัวแปรมาดักเช็ค combo

if (Input.GetButtonDown("Fire2") && comboList == 0)
{
   weapons.animation.Play ("Punch 2"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 1
   comboList = 1;
   //ต้องเช็คเวลากดครั้งต่อไปด้วย

}else

if(Input.GetButtonDown("Fire2") && comboList == 1 && //เวลาที่จะกดครั้งต่อไป)
{
     weapons.animation.Play ("Punch 3"); // เล่นอนิเมชั่นตรงนี้ ท่าต่อย 2
}

//เสร็จแล้วนับเวลาเล่นอนิเมชั่นท่า 2 ให้จบ แล้วเด้ง comboList กลับเป็น 0 ใหม่

ถ้าจะเอา Advance หน่อย แนะนำ Animation Event (กด Ctrl + 6) ครับ
มันใช้รัน Method ระหว่างเล่น Animation ได้ ดัก Combo ได้ง่ายกว่า แต่ต้องศึกษานิดนึงครับ

ขอบคุณมากๆเลยครับ ฮ่าๆ Blush

Y me gusta muchoY me gusta muchoY me gusta muchoY me gusta muchoY me gusta muchoY me gusta mucho
  
Users browsing this thread: 4 Guest(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.