วิธีทำไฟในปาก by

29
Sep
0

วิธีการทำไฟในปากดังรูปนี้

1.จากปากว่างๆดังนี้

สร้างshapeแล้วใส่ gradient สีส้มๆ(สีสว่างอยู่ด้านล่าง)

2.หารูปเปลวไฟประมาณรูปนี้(รูปนี้ Capture มาจาก 3D Particle)

3.สร้าง Cliping Mask ดังรูปสีเขียว

4.ใส่รูปเปลวไฟใน Clipping Mask

5.ปรับ Layer เป็น Screen จะได้ผลลัพธ์ดังภาพ

[Unity] วิธีการแก้ไขเมื่อนำ 3D Particle มาใช้ในโหมด 2D แล้วแสดงผลไม่ตรง by

30
Jun
0

หน้าตา Particle ต้นทางที่นำมาใช้

หลังจากที่ได้แอบคลุกคลีกับ Particle System ใน Unity ปัญหาหลักที่เกิดจาก Particle บางเจ้าคือ พอนำมาใช้ในเกม 2D ของเราแล้วการแสดงผลดูไม่เหมือนกับที่รันในโปรเจ็คตัวอย่าง อะไรๆมันดูขาดๆไป ทำให้ได้ข้อแนะนำแรกเลยคือ ตอนนำมาใช้ในโปรเจ็คเรา ให้เปิดโหมด 3D ดูก่อน โดยส่วนตัวแนะนำให้ดูแบบ isometric จะทำให้เห็นภาพที่จะใช้กับแบบ 2D ได้ชัดเจนขึ้น พอเปิด 3D ขึ้นมาเราก็จะอ๋อเองแหละครับ หลายๆอย่างที่มันหายไปเพราะมันขนาบกับแกน X ใน 2D ของเรายังไงล่ะ!! เพราะเรามองได้มุมเดียวตลอด วัตถุบางอย่างที่มา Billboard ขนาบไปกับแกน X เราก็จะมองไม่เห็นเลยเพราะมันคือแผ่นบางๆที่ไร้ความหนา หมุนแกนอะไรก็หมุนไม่ได้ ทีนี้จะแก้อย่างไร ทำตามนี้เลยครับผม

สิ่งที่เห็นเมื่อรันในโหมด 2D ดูจืดจางไปเลยว่าไม๊

ขั้นแรกไปที่ GameObject ด้านใน ให้แก้เฉพาะตัวที่เราจะต้องแก้ ซึ่งก็คือตัวที่ไม่เห็นในจอตอนโหมด 2D นั่นเอง ทีนี้ค่าที่เราต้องแก้ก็คือเจ้า Renderer นี่เอง ปกติไม่ว่าจะใช้ Render Mode เป็น Billboard แบบไหนก็ตาม มันจะเป็นแผ่นขนาบไปกับแกน ซึ่งหมุนอะไรมันไม่ได้เลย ดังนั้นเราเลยต้องเปลี่ยนตัว Render Mode นี่แหละครับ โดยพื้นฐานให้เปลี่ยนเป็น Mesh แล้วเลือกรูปแบบ Plane ซึ่งหลังจากปรับเสร็จเราต้องซูมออกมาจัดขนาดเสียก่อนเล็กน้อย แต่ว่ามันก็ยังมองไม่เห็นใน 2D อยู่ดีนี่นา 

ตัวอย่างค่าใน Inspector ก่อนการปรับแก้ Renderer

เลือก Render Mode เป็น Mesh และเลือกเจ้าตัว Mesh เป็นแบบ Plane

ที่ยังมองไม่เห็นเพราะมันยังขนาบแกน X เหมือนเดิมยังไงล่ะ เราก็จับหมุนแกน X ซะ จากตอนแรกที่หมุนไม่ได้ พอเปลี่ยนมาเป็น Render Mode แบบนี้ก็จะหมุนได้ตามใจเลยล่ะครับ แนะนำให้ไปรันกับตัวเกมจริงแล้วดูองศาเกม แล้วปรับองศาของ Particle ให้ตรงกับ Perspective ในเกมของเรานะครับ

ปรับขนาด หมุน Rotate แกน X เท่านี้ จบ!

เสร็จ!! พร้อมใช้งาน!!

ผลลัพธ์หลังจากแก้ไขแล้วในโหมด 2D

[UNITY][Particle] Particle ที่เล่น Particle เดิมซ้ำๆ แต่ Random จุดเกิด by

30
Jun
0

เคยไหม ที่อยากให้ Particle เกิดแบบ Random จุดเกิด แต่มีปริมาณตามที่เรากำหนดไว้ตลอด ยกตัวอย่างเช่น ทำ Particle สำหรับ ท่าโจมตีของ Unit ตัวหนึ่งซึ่งเป็นมือปืน เวลาใช้ท่าไม้ตาย Unit ตัวนี้จะโจมตี 6 ครั้งแบบยิงกราด อะไรประมาณนั้น วันนี้จะมานำเสนอ Code ที่จะทำให้ชีวิตง่ายขึ้นครับ

ขั้นแรก เอา Code ไปก่อนเลยครับ

using UnityEngine;
using System;
using System.Collections;
public class ParticleRandomize : MonoBehaviour
{
[Serializable]
public class Range
{
public float Min;
public float Max;
}
public GameObject Particle;
public int Count;
public float Time;
public Range X;
public Range Y;
public float RandomDistancePercent = 100f;
void Start()
{
float TimePerOnce = Time / Count;
Vector2 Distance = new Vector2(Mathf.Abs(X.Min - X.Max) * RandomDistancePercent / 100 / 2, Mathf.Abs(Y.Min - Y.Max) * RandomDistancePercent / 100 / 2);
Vector2 lastPosition = Vector3.zero;
for (int i = 0; i 100)
{
break;
}
} while ((lastPosition.x + Distance.x > x && x > lastPosition.x - Distance.x) && (lastPosition.y + Distance.y > y && y > lastPosition.y - Distance.y));
lastPosition = new Vector2(x, y);
_particle.transform.parent = transform;
_particle.transform.localPosition = new Vector2(x, y);
});
}
}
}

ต่อมาเราก็ AddComponent ให้ Particle ที่เราอยากให้มันเล่นซ้ำๆนะครับ ตัวอย่าง
Untitled

จะอธิบาย Config ใน Inspector ทีละตัวนะครับ
Particle: คือ Particle ที่เราอยากให้เล่นซ้ำๆ ครับ ให้ลาก prefab particle มาใส่ในช่องนี้นะครับ
Count: คือจำนวนครั้งที่อยากให้ Particle เล่นครับ
Time: คือระยะเวลาหน่วงระหว่าง Particle ครับ
X.min: คือระยะน้อยที่สุดในแกน x ที่จะ Random จุดเกิด
X.max: คือระยะมากที่สุดในแกน x ที่จะ Random จุดเกิด
Y.min: คือระยะน้อยที่สุดในแกน y ที่จะ Random จุดเกิด
Y.max: คือระยะมากที่สุดในแกน y ที่จะ Random จุดเกิด
Random Distance Percent: คือ ระยะ(เป็นเปอร์เซนของระยะ min, max ที่ตั้งไว้) ที่จะไม่ให้ Particle เกิดใกล้กันครับ

จริงๆแล้ว Script random จุดเกิดของ GameObject ต่างๆนั้นมันไม่ได้ยากอะไรหรอกครับ แต่ข้อดีของ Script นี้ก็คือ สามารถกำหนดได้ว่า ไม่ให้ GameObject ที่ เกิดติดๆกัน อยู่ใกล้กันมากกว่ากี่เปอร์เซนของพื้นที่ ที่เรากำหนดไว้ข้างต้นครับ

 เราชนะรอบ 4 | ยืมเงิน 3000 ด่วน | แอพกู้เงิน | แอพเงินด่วน | สินเชื่อออนไลน์อนุมัติทันที | Site Map | กู้เงินก้อน | กระเป๋าตัง | thisshop และ ยืมเงินฉุกเฉิน 5000 ด่วน