introducción
El principio de implementación del efecto de ocultación de arbustos en Cocos.
En el desarrollo de juegos, a menudo utilizamos efectos de perspectiva o translucidez para expresar el efecto de la oclusión de los modelos .
Este artículo presentará cómo lograr el efecto de esconderse en la hierba en Honor of Kings in Cocos .
El proyecto fuente de este artículo se encuentra al final del artículo. Los amigos pueden ir allí por su cuenta.
Cómo conseguir el efecto de esconderse en la hierba.
Para lograr el efecto de esconderse en la hierba en Honor de Reyes en Cocos , se requieren los siguientes puntos:
1. Translucidez del modelo
Para lograr el efecto de translucidez del modelo , se requieren las dos condiciones siguientes:
- La cola de renderizado donde se encuentra el objeto 3D es la " cola transparente ";
alpha
El valor de color del objeto 3D cambia a 127 (translúcido);
2. Disparador
La translucidez del modelo se activa al entrar en el césped y la translucidez del modelo se restablece al salir del césped . Se requieren los siguientes 2 eventos :Collider
-
onTriggerEnter
: Se activa cuando otroCollider
entra al mío .Collider
-
onTriggerExit
: Se activa cuando otroCollider
deja el mío .Collider
Sin más, pongamos un ejemplo.
Pollo rey escondido en la hierba
A continuación, implementaremos el efecto de escondernos en la hierba paso a paso en King of Glory .
1. Medio ambiente
Versión del motor : Cocos Creator 3.8.1
Lenguaje de programación : mecanografiado
2. Preparación de recursos
Primero, vaya al " mercado de verduras " y compre dos puñados de " verduras ". Los amigos a quienes les guste hacer modelos pueden hacer uno ellos mismos en 3dmax . Primero echemos un vistazo al efecto de la hierba en 3dmax :
Luego exporte el modelo desde 3dmaxFBX
, incluidos y TGA
, y luego agréguelo al proyecto:
Arrastre el modelo a la escena y podrá ver la hierba blanca como la nieve :
Para que su césped vuelva a ser verde , debe hacer lo siguiente:
- Para modificar el material
Effect
, lo utilizamosbuiltin-unlit
. - Luego
Technique
seleccionetransparent
el canal. - Establece la textura.
Una vez completado el procesamiento , el efecto es el siguiente:
Como el pasto no es lo suficientemente denso , copiamos y pegamos unos cuantos más:
Si desea que Grass genere un evento desencadenante , debe agregarlo Collider
, se usa directamente aquí BoxCollider
, simple y rápido:
Márcalo Is Trigger
para que sea un disparador , de lo contrario no podrás entrar al césped:
3. Escribir código
Crea un nuevo Tussock
componente y arrástralo al King Chicken.
@ccclass('Tussock')
export class Tussock extends Component {
start() {
}
update(deltaTime: number) {
}
}
start()
Obtenga el componente en el método y CapsuleCollider
escuche onTriggerEnter
el onTriggerExit
evento.
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);
}
Finalmente, toma el material del Pollo Rey y material.setProperty('albedo');
establece su transparencia :
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. Demostración de efectos
Si no trabajas duro durante un día, todo tu cuerpo se sentirá incómodo. Por favor ayuda a reenviar el artículo. ¡Se acabó la salida de clase!
Conclusión
El proyecto fuente de este artículo se puede obtener enviando a Tussock por mensaje privado .
Recientemente, Qilinzi (quien ha estado profundamente involucrado en motores de juegos y desarrollo de juegos durante 15 años , y cada gota de información práctica proviene de la práctica de proyectos comerciales ) invitó al autor a unirse a Knowledge Planet como invitado . para:
- Tutor de enseñanza
- Comunicación sobre cuestiones de aprendizaje.
- Introducción y avances para recién llegados
- Reclutamiento y intercambio de oportunidades de empleo
- Colección de preguntas de la entrevista.
- Intercambio de experiencias en entrevistas.
En general, Planet tiene un solo objetivo : proporcionar contenido de alta calidad y participar en el aprendizaje . Los amigos interesados pueden escanear el código para obtener más información y recibir asistencia. Los esperaré adentro .
Soy un "Programador Billion Dollar", un programador con 8 años de experiencia en la industria de los juegos. En el desarrollo de juegos, espero poder ayudarte y espero que a través de ti pueda ayudar a todos.
ANUNCIO: Puede hacer clic y buscar los minijuegos en línea del autor "Snake Handheld Classic", "Gravity Maze Ball" y "Coloring Journey" usted mismo.
Para ser honesto, ¡quiero que me guste y mire ! Comparte este artículo con otros amigos que creas que lo necesitan . ¡Gracias!
Columnas recomendadas:
¿Sabes cómo implementa Honor of Kings el indicador de rango de habilidades?
Aprenda patrones de diseño con un programador maestro de juegos de 8 años
Desarrolla el minijuego Snake desde cero hasta una serie en línea