Beam

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bir Işınlayıcı nesnesi, aralarındaki bir Attachments ile bir Işınlayıcıyı bağlar.

Görüntülemek için, bir ışın Workspace ile onun Attachment0 ve Attachment1 özellikleriyle iletken olmalıdır. Ayrıca 2> Class.Workspace2> ile aşağıdan gelirken 5>

Işının görünümü aşağıdaki özelliklerin menzili kullanılarak özelleştirilebilir. Ayrıca, görsel örnekler için Işınlar rehberini de gözden geçirin.

Işın Kıvrımı

Işınlar dört kontrol nokası tarafından oluşturulan kübik Bézier kısmını kullanmak için yapılandırılmıştır. Bu, onları doğrudan çizgilere bağlı olmadan değiştirebilir ve CurveSize0 , Class

Beam curvature diagram

Kod Örnekleri

Creating a Beam From Scratch

-- create attachments
local att0 = Instance.new("Attachment")
local att1 = Instance.new("Attachment")
-- parent to terrain (can be part instead)
att0.Parent = workspace.Terrain
att1.Parent = workspace.Terrain
-- position attachments
att0.Position = Vector3.new(0, 10, 0)
att1.Position = Vector3.new(0, 10, 10)
-- create beam
local beam = Instance.new("Beam")
beam.Attachment0 = att0
beam.Attachment1 = att1
-- appearance properties
beam.Color = ColorSequence.new({ -- a color sequence shifting from white to blue
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 255, 255)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(0, 255, 255)),
})
beam.LightEmission = 1 -- use additive blending
beam.LightInfluence = 0 -- beam not influenced by light
beam.Texture = "rbxasset://textures/particles/sparkles_main.dds" -- a built in sparkle texture
beam.TextureMode = Enum.TextureMode.Wrap -- wrap so length can be set by TextureLength
beam.TextureLength = 1 -- repeating texture is 1 stud long
beam.TextureSpeed = 1 -- slow texture speed
beam.Transparency = NumberSequence.new({ -- beam fades out at the end
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(0.8, 0),
NumberSequenceKeypoint.new(1, 1),
})
beam.ZOffset = 0 -- render at the position of the beam without offset
-- shape properties
beam.CurveSize0 = 2 -- create a curved beam
beam.CurveSize1 = -2 -- create a curved beam
beam.FaceCamera = true -- beam is visible from every angle
beam.Segments = 10 -- default curve resolution
beam.Width0 = 0.2 -- starts small
beam.Width1 = 2 -- ends big
-- parent beam
beam.Enabled = true
beam.Parent = att0

Özet

Özellikler

Yöntemler

Özellikler

Attachment0

Paralel oku

Işının kaynağından olan Attachment bu ışının kübik Bézier kısmındaki ilk kontrol noktasıdır. Orientasyonu, CurveSize0 özelliğinin yanındaki, ikinci kontrol noktasının konumunu belirlemek için görüyor. Ayrıca, Işı

Işının ucunda Attachment olmayan bir Attachment1 için, bakın Class.Beam.Selection1|Selection1.

Attachment1

Paralel oku

Işının küpik Bézier kısmındaki son kontrol noktasına kadar uzanır. Bu bağlantı, işaretleyicinin küpik Bézier kısmındaki dördüncü ve son kontrol noktasıdır; yönu, Attachment özelliği ile birlikte, üçüncü kontrol noktasının konumun

Işınlanan ışınlanma noktasından olan Attachment için, Attachment0 ı görün.

Brightness

Paralel oku

Işığın Class.Beam.LightInfluence|LightInfluence değerinden önce 1'den daha az olduğunda, ışığın yayılanını artırır. Bu özellik varsayılan olarak 1'dir ve Class.Beam.LightInfluence|LightInfluence değerinin aralığını 0 ila 10000 arasında ayarl

Paralel oku

Işının rengini belirler. Işının rengi Segments aracılığıyla belirlenir. Eğer Texture belirlenmiş ise, bu renk ışının dokusuna uygulanır. Eğer Class.Beam.

Bu özellik bir ColorSequence , boyunca dalga boyunca rengin yapılandırılmasını sağlayan bir renk oluşturur. İşte, uygulandığında bir dalga boyunca boyunca, görüntülenen sonuçveren ColorSequence dır.


local colorSequence = ColorSequence.new({
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)), -- Kırmızı
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(0, 188, 203)), -- Cam
ColorSequenceKeypoint.new(1, Color3.fromRGB(196, 0, 255)), -- Mor
}
)

Ayrıca, şu anda Segments ın sahip olduğu Beam sayısına bağlı ol

CurveSize0

Paralel oku

Class.Beam.Attach0|Attach0> ile birlikte, çizgi şekillendirme曲線中的 ikinci kontrol noktasının pozisyonunu belirler. Ayrıntılar için Attachment0 bakın.

Bu noktanın konumu şu denklemle belirlenebilir:


local controlPoint2 = Beam.Attachment0.WorldPosition + (Beam.Attachment0.CFrame.RightVector * Beam.CurveSize0)

CurveSize1

Paralel oku

Class.Beam.Attach1|Attach1> ile birlikte, çizgi şekillendirme曲線中的 üçüncü kontrol noktasının pozisyonunu belirler. Ayrıntılar için Işınlar bakın.

Bu noktanın konumu şu denklemle belirlenebilir:


local controlPoint3 = Beam.Attachment1.WorldPosition - (Beam.Attachment1.CFrame.RightVector * Beam.CurveSize1)

Enabled

Paralel oku

Işının görünür olup olmadığını belirler.

Bu özellik Segments ile yanlış olarak gösterilmez.

FaceCamera

Paralel oku

Bir Beam , 3D alanında mevcut olan bir 2D projektörü ifade eder ve her açıdan görünmeyebilir. Yüz Kamerası özelliği, setlenmiş olarak true , çizgisel yön olarak her zaman 2> Class.Workspace.CurrentCamera|CurrentCamera2> 'yı gösterir.

LightEmission

Paralel oku

Işının rengiyle kaynağın rengi arasındaki oranı belirler. 0 ila 1 arasında ayarlanmalıdır. 0 değeri normal bir karışım modunu kullanır ve 1 değeri ekstra bir karışım modunu kullanır.

Bu özellik LightInfluence ile karıştırılmamalıdır, bu da ışının çevresel ışığa nasıl etkilendiğini belirler.

Bu özellik, ışını çevreleyen çıkıntıyı etkilemez.

LightInfluence

Paralel oku

Işınlanmanın çevresindeki ışıklandırmaya olan derecesini belirler, 0 ile 1 arasında kıvrımlıdır. 0, çevresindeki ışıklandırmaya etkisi olmayan bir BasePart olacaktır.

Ayrıca, LightEmission bakınız, bu da ışının arkasındaki renklerle karıştığı derece renklerin karışımını belirtir.

LocalTransparencyModifier

Gizli
Çoğaltılmamış
Paralel oku

Segments

Paralel oku

Mükemmel bir kıvama sahip olmak yerine, bir dalga kıvamının tüm katmanlarına yapılmıştır. Katmanların sayısı, kıvamanın çözünürlüğünü artırır. Segmentler özelliği, dalga kıvamının kaç tane katmanını oluşturduğunu, varsayılan değer ile 10 olarak ayarlar.

Açıklama Notu, Color ve Transparency özelliklerinin doğru g

Texture

ContentId
Paralel oku

Işınlanmak için görüntülenen tekstürün ID'si. Bu özellik ayarlanmazsa, tekstür solida bir satır olarak görüntülenir; bu ayrıca, tekstürün ilişkili olarak hala yüklenmediği görüntülenen bir satır olarak görüntülenir.

Metinin görünümü, Color ve Transparency dahil olmak üzere diğer ışın özellikleri tarafından daha da değiştirilebilir.

Metin büyüklüğü TextureMode, TextureLength, Width0 ve 2>Class.Beam.Width1|Width12> özellikleriyle belirlenir.

TextureLength

Paralel oku

Işınlanma moduna bağlı olarak ışınlanma modunun uzunluğunu ayarlar. TextureMode .

TextureMode

Paralel oku

Bu özellik, TextureLength ile birlikte, bir ışının Texture'ının tekrarlanmasını belirler.

Class.Beam.TextureLength|TextureLength ile birleştirildiğinde, dokunma sayısıyla birleştirildiğinde veya Enum.TextureMode.Static ile birleştirildiğinde, dokunma sayısıyla birleştirildiğinde veya TextureLength ile birleştirildiğinde, dokunma sayısıyla birleştirildiğinde veya 1>Class

TextureMode diagram with Wrap mode

Class.Beam.TextureLength|TextureLength ile birleştirildiğinde, dokunun boyunca çizgi uzunluğu boyunca TextureLength tekrar edilir.

TextureMode diagram with Stretch mode

TextureSpeed

Paralel oku

Class.Beam.Texture|Texture görüntüsünün ışın üzerinde hareket ettiği hızı belirler. Bu özellik olumlu bir değer olduğunda, ışının dokusu Attachment0 ile Attachment1 arasında hareket eder. Bu yön,

Transparency

Paralel oku

Işının bölümleri arasındaki görünürlüğünü belirler. Bu özellik bir NumberSequence olarak, görünürlüğü uzunluğu boyunca değiştirilebilir şekilde yapılandırır.

Bir ızına uygulandığında görüntülenen sonuçu veren şu NumberSequence düşünün.


local numberSequence = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0), -- opak
NumberSequenceKeypoint.new(0.5, 1), -- Şeffaf
NumberSequenceKeypoint.new(1, 0), -- opak
}
)

Not, ışığın transparansının ayrıca Segments sayısına da bağlı olduğunu unutmayın. Her bir ışığın transparansı sadece iki transparans arasında bir geçi

Width0

Paralel oku

Işının kaynağındaki bemin genişliği (Attachment0), in studs. Işının genişliği lineer olarak Width1 ile sona ulaşır (Attachment1).

Width1

Paralel oku

Işının ucunda (Attachment1), çizgilerde, ışının genişliği lineer olarak değişir. ışının genişliği, kökenindeki Width0 çizgilerinden lineer olarak değişir.

ZOffset

Paralel oku

Menzil, milimetre olarak, ışın göstergesinin Class.Workspace.CurrentCamera|CurrentCamera ile ilgili kaymasıdır. 0 olduğunda, ışın göstergesi standart pozisyonları arasında CurrentCamera ve Attachment0 arasında gösterilecektir

Bu özellik, aynı Beams arasındaki çok sayıda Attachments kullanırken "Z-fighting" ile kaçınmak için özellikle yararlıdır.

Kod Örnekleri

Layering Beams

-- Create beams
local beam1 = Instance.new("Beam")
beam1.Color = ColorSequence.new(Color3.new(1, 0, 0))
beam1.FaceCamera = true
beam1.Width0 = 3
beam1.Width1 = 3
local beam2 = Instance.new("Beam")
beam2.Color = ColorSequence.new(Color3.new(0, 1, 0))
beam2.FaceCamera = true
beam2.Width0 = 2
beam2.Width1 = 2
local beam3 = Instance.new("Beam")
beam3.Color = ColorSequence.new(Color3.new(0, 0, 1))
beam3.FaceCamera = true
beam3.Width0 = 1
beam3.Width1 = 1
-- Layer beams
beam1.ZOffset = 0
beam2.ZOffset = 0.01
beam3.ZOffset = 0.02
-- Create attachments
local attachment0 = Instance.new("Attachment")
attachment0.Position = Vector3.new(0, -10, 0)
attachment0.Parent = workspace.Terrain
local attachment1 = Instance.new("Attachment")
attachment1.Position = Vector3.new(0, 10, 0)
attachment1.Parent = workspace.Terrain
-- Connect beams
beam1.Attachment0 = attachment0
beam1.Attachment1 = attachment1
beam2.Attachment0 = attachment0
beam2.Attachment1 = attachment1
beam3.Attachment0 = attachment0
beam3.Attachment1 = attachment1
-- Parent beams
beam1.Parent = workspace
beam2.Parent = workspace
beam3.Parent = workspace

Yöntemler

SetTextureOffset

void

Bir ızının tekstür döngüsünün ofseti, onun tekstür animasyonunun ilerlemesini temsil eder. Bu yöntem, ızının tekstür döngüsünün mevcut ofsetini ayarlar; bu nedenle, 0'i offset değerine atarak döngüyü sıfırlayabilirsiniz.

Notlar

  • Verilen offset parametresi 0 ile 1 arasında bir değer olmalıdır, ancak daha büyük değerler kullanılabilir.
  • Dokunun döngüsü 0 ve 1 arasında yuvarlanır, yani ofset 0 veya 1'deyken dokunun aynı pozisyonda olması gerekir.
  • Class.Beam.Texture|Texture özelliği ayarlanmazsa, bu yöntem hiçbir şey yapmaz.
  • Ofseti artırmak, TextureSpeed özelliğine ters yönlü hareket edeceğini ifade ediyor, yani tekstürü yan yönlü hareket ettirirken TextureSpeed daha büyük olduğunda, tekstür animasyonunu yönlendirir.

Parametreler

offset: number

Metin döngüsünün istediğiniz ofseti.

Varsayılan değer: 0

Dönüşler

void

Etkinlikler