• Unity3D笔记 切水果二 刀光剑影


    一、步骤一创建一个空GameObject、js

    二、代码

    #pragma strict
    var myColor:Color;
    var firstPosition:Vector3;//鼠标点击的第一个点
    var secondPosition:Vector3;//鼠标放开的位置
    var middlePosition:Vector3;
    var isClick:boolean=false;
    private var lineRenderer:LineRenderer;
    
    function Start () {
        lineRenderer=gameObject.AddComponent(LineRenderer);
        lineRenderer.material.color=myColor;
        lineRenderer.SetWidth(0.1,0.1);//设置宽度 起点宽度和终点宽度 function SetWidth (start : float, end : float) : void 
    }
    
    function Update () {
        var isMouseDown=Input.GetMouseButton(0);//获取按钮
        if(isMouseDown&&!isClick){
            firstPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
            lineRenderer.SetVertexCount(1);//设置线段数 
            lineRenderer.enabled=true;
            lineRenderer.SetPosition(0,firstPosition);
            isClick=true;
        }
        if(isMouseDown){
            secondPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
            lineRenderer.SetVertexCount(2);
            lineRenderer.SetPosition(1,secondPosition);
        }
        if(Input.GetMouseButtonUp(0)){
            isClick=false; 
            secondPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
            lineRenderer.SetVertexCount(2);
            lineRenderer.SetPosition(1,secondPosition);
        }    
    }

    三、实现划线功能

     四、实现刀光剑影

     编辑好位置

     调用刀光剑影

    最终代码

    #pragma strict
    //var myColor:Color;
    var firstPosition:Vector3;//鼠标点击的第一个点
    var secondPosition:Vector3;//鼠标放开的位置
    var middlePosition:Vector3;
    var isClick:boolean=false;
    
    var myRay:GameObject;
    private var rayGameObject:GameObject;
    
    //private var lineRenderer:LineRenderer;
    
    //function Start () {
    //    lineRenderer=gameObject.AddComponent(LineRenderer);
    //    lineRenderer.material.color=myColor;
    //    lineRenderer.SetWidth(0.1,0.1);//设置宽度 起点宽度和终点宽度 function SetWidth (start : float, end : float) : void 
    //}
    
    function Update () {
        var isMouseDown=Input.GetMouseButton(0);//获取按钮
        if(isMouseDown&&!isClick){
            firstPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
            //lineRenderer.SetVertexCount(1);//设置线段数 
            //lineRenderer.enabled=true;
            //lineRenderer.SetPosition(0,firstPosition);
            isClick=true;
        }
        if(isMouseDown){
            secondPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
            //lineRenderer.SetVertexCount(2);
            //lineRenderer.SetPosition(1,secondPosition);
        }
        if(Input.GetMouseButtonUp(0)){
            isClick=false; 
            secondPosition=Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x,Input.mousePosition.y,1));
            //lineRenderer.SetVertexCount(2);
            //lineRenderer.SetPosition(1,secondPosition);
            
            middlePosition=(firstPosition+secondPosition)/2.0;
            var angle:float=Mathf.Atan((secondPosition.y-firstPosition.y)/(secondPosition.x-firstPosition.x));
            rayGameObject=Instantiate(myRay,middlePosition,Quaternion.AngleAxis(angle*100/3.14,Vector3.forward));
            Destroy(rayGameObject,1.0);
        }
        
        
        
    }


    作者:PEPE
    出处:http://pepe.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    iconv 文件编码相互转换
    MySQL 字符编码
    MySQL there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause同时创建多个更新当前时间戳字段 解决方法
    PHP 输出日志到文件 DEMO
    Nginx http -> https 跳转后 POST 丢失
    SSH SCP 远程密钥登录配置和服务器间的文件传输
    Mac 安装 7zip
    git pull There is no tracking information for the current branch.
    MacOS 安装配置 Laravel
    Mac OS 安装 MySQL5.7
  • 原文地址:https://www.cnblogs.com/PEPE/p/3574667.html
Copyright © 2020-2023  润新知