Einführung
Das Umsetzungsprinzip des Bush-Hiding-Effekts in Cocos.
In der Spieleentwicklung verwenden wir häufig Perspektiven- oder Transluzenzeffekte , um den Effekt der Verdeckung von Modellen auszudrücken .
In diesem Artikel erfahren Sie, wie Sie den Effekt „Verstecken im Gras“ in „Honor of Kings in Cocos“ erreichen .
Das Quellprojekt dieses Artikels finden Sie am Ende des Artikels. Freunde können selbst dorthin gehen.
So erzielen Sie den Effekt, sich im Gras zu verstecken
Um den Effekt zu erzielen, sich in Honor of Kings in Cocos im Gras zu verstecken , sind folgende Punkte erforderlich:
1. Modelltransluzenz
Um den Transluzenzeffekt des Modells zu erreichen , sind folgende zwei Bedingungen erforderlich:
- Die Rendering-Warteschlange, in der sich das 3D-Objekt befindet, ist die „ transparente Warteschlange “.
alpha
Der Farbwert des 3D-Objekts wird auf 127 (durchscheinend) geändert;
2. Auslöser
Die Lichtdurchlässigkeit des Modells wird beim Betreten des Grases ausgelöst und beim Verlassen des Grases wird die Lichtdurchlässigkeit des Modells wiederhergestellt . Die folgenden 2 Ereignisse sind erforderlich :Collider
-
onTriggerEnter
: Wird ausgelöst , wenn jemand anderesCollider
meins betritt .Collider
-
onTriggerExit
: Wird ausgelöst , wenn andereCollider
meine verlassen .Collider
Lassen Sie uns ohne weitere Umschweife ein Beispiel geben.
Königshuhn versteckt sich im Gras
Als nächstes werden wir den Effekt des Versteckens im Gras Schritt für Schritt in King of Glory umsetzen .
1. Umwelt
Engine-Version : Cocos Creator 3.8.1
Programmiersprache : TypeScript
2. Ressourcenvorbereitung
Gehen Sie zuerst zum „ Gemüsemarkt “ und kaufen Sie zwei Handvoll „ Gemüse “. Freunde , die gerne Modelle herstellen, können in 3dmax selbst eines erstellen . Schauen wir uns zunächst die Wirkung von Gras in 3dmax an:
Exportieren Sie dann das Modell aus 3dmaxFBX
, einschließlich und TGA
, und fügen Sie es dann dem Projekt hinzu:
Ziehen Sie das Modell in die Szene und Sie können das schneeweiße Gras sehen:
Um Ihren Rasen wieder grün zu machen , müssen Sie Folgendes tun:
- Um das Material zu modifizieren
Effect
, verwenden wir esbuiltin-unlit
. Technique
Wählen Sie danntransparent
den Kanal aus.- Legen Sie die Textur fest.
Nach Abschluss der Verarbeitung ist der Effekt wie folgt:
Da das Gras nicht dicht genug ist , kopieren wir noch ein paar und fügen sie ein:
Wenn Sie möchten, dass Gras ein Triggerereignis generiert , müssen Sie es hinzufügen Collider
. Es wird hier direkt verwendet BoxCollider
, einfach und schnell:
Markieren Sie Is Trigger
es, um es zu einem Auslöser zu machen , andernfalls können Sie das Gras nicht betreten :
3. Code schreiben
Erstellen Sie eine neue Tussock
Komponente und ziehen Sie sie auf das King Chicken.
@ccclass('Tussock')
export class Tussock extends Component {
start() {
}
update(deltaTime: number) {
}
}
start()
Holen Sie sich die Komponente in die Methode und CapsuleCollider
warten Sie auf onTriggerEnter
das onTriggerExit
Ereignis.
start() {
var collider = this.getComponent(CapsuleCollider);
collider.on('onTriggerEnter', (event: ICollisionEvent) => {
if (event.otherCollider.node.name == "tussock") {
this.setModelTranslucency(true);
}
}, this);
collider.on('onTriggerExit', (event: ICollisionEvent) => {
if (event.otherCollider.node.name == "tussock") {
this.setModelTranslucency(false);
}
}, this);
}
Besorgen Sie sich schließlich das Material des King Chicken und material.setProperty('albedo');
legen Sie dessen Transparenz fest :
setModelTranslucency(flag: boolean) {
const material = this.node.getChildByName("rooster_man").getComponent(RenderableComponent)?.sharedMaterials[0]; // 0 表示第一个材质,根据您的需求修改
material.setProperty('albedo', new Color(255, 255, 255, flag ? 127 : 255));
}
4. Wirkungsdemonstration
Wenn Sie einen Tag lang nicht hart arbeiten, wird sich Ihr ganzer Körper unwohl fühlen. Bitte helfen Sie mit, den Artikel weiterzuleiten. Raus aus dem Unterricht ist vorbei!
Abschluss
Das Quellprojekt dieses Artikels kann erhalten werden, indem Sie Tussock eine private Nachricht senden .
Kürzlich wurde der Autor von Qilinzi (der sich seit 15 Jahren intensiv mit Game-Engine und Spieleentwicklung beschäftigt und jeder Tropfen praktischer Informationen aus der kommerziellen Projektpraxis stammt ) als Gast zum Wissensplaneten eingeladen . Der Planet wird hauptsächlich genutzt für:
- Nachhilfeunterricht
- Kommunikation zu Lernthemen
- Erste Schritte und Fortgeschrittene für Neueinsteiger
- Rekrutierung und gemeinsame Nutzung von Beschäftigungsmöglichkeiten
- Sammlung von Interviewfragen
- Erfahrungsaustausch im Vorstellungsgespräch
Im Allgemeinen hat Planet nur ein Ziel : hochwertige Inhalte bereitzustellen und sich für das Lernen zu engagieren . Interessierte Freunde können den Code scannen , um mehr zu erfahren und Unterstützung zu erhalten. Ich werde drinnen auf Sie warten .
Ich bin ein „Milliarden-Dollar-Programmierer“, ein Programmierer mit 8 Jahren Erfahrung in der Spielebranche. Bei der Spieleentwicklung hoffe ich, Ihnen helfen zu können, und ich hoffe, dass ich durch Sie allen helfen kann.
ANZEIGE: Sie können selbst auf die Online-Minispiele des Autors „Snake Handheld Classic“, „Gravity Maze Ball“ und „Coloring Journey“ klicken und suchen.
Ehrlich gesagt möchte ich es mögen und sehen ! Bitte teilen Sie diesen Artikel mit anderen Freunden, von denen Sie glauben, dass sie ihn brauchen. Danke!
Empfohlene Spalten:
Wissen Sie, wie Honor of Kings den Skill-Range-Indikator implementiert?
8 Jahre Erfahrung im schrittweisen Aufbau des unabhängigen Cocos-Spieleentwicklungs-Frameworks
Lernen Sie Designmuster mit einem 8-jährigen Game-Master-Programmierer
Entwickeln Sie das Snake-Minispiel von Grund auf zu einer Online-Serie